博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos7下利用crontab+bypy实现自动备份数据到百度网盘
阅读量:6341 次
发布时间:2019-06-22

本文共 2350 字,大约阅读时间需要 7 分钟。

  hot3.png

一、关于 

        有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百度网盘数据的同步。

        这是一个百度云的 Python 客户端,其主要目的和功能,就是为 Linux 使用者提供一种在命令行下,使用百度云盘中的存储空间的方法。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。

二、环境配置

        环境:Centos7+python2.7.5

        查看系统是否有python环境(一般系统自带python2.7)

python

18a4f7f0a284b00a3c92315e48785b07082.jpg

        安装pip、bypy

sudo yum -y install epel-release     #这是安装pip时要用到的东西sudo yum -y install python-pipsudo yum clean allsudo pip install --upgrade pip     #更新 #如果无法更新可以使用命令:sudo python -m pip install --upgrade pipsudo pip install bypysudo pip install requests

        如出现如下界面,则安装完成

734d5740a9deb08dac0cfe4d98799df89f0.jpg

三、授权登陆

        执行bypy info

bypy info

        访问方框内的连接

671adadc86526b9ed9eb0e1ea64c907c861.jpg

        登陆百度云账号

28255f1c5318dc9f370f10e99bf8f6aa921.jpg

        获得授权码

c667718d6a6370fe3eea65f110ec6864de6.jpg

        粘贴到终端上

9974f2a9c3a7928fce6229601f7c4d3a440.jpg

    授权完成后可查看相关信息,由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录

bypy info     #空间使用信息bypy list     #目录信息

9eb91d5042c1087c4e77a1ba8511b488eb1.jpg

四、使用bypy备份数据

        例如我们可以备份上传‘’/test"目录下的所有文件

c66cab6eb718037ab31a71e303096992788.jpg

        把本地当前目录下的文件同步到百度云盘:

bypy upload     #要注意切换到你想要上传的目录在执行这个命令

771312ccdc5a2217b26506a6630bbe04e6a.jpg

        登录到网盘上,可以看到所有文件已经上传

756e462e6f0874a3fc2c0ba8132c25a09f4.jpg

        把云盘上的内容同步到本地:

bypy downdir

        比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功:

bypy cmpare

        比较当前目录与云盘目录,结果如下

3786e4bf13f5f24130630b3aa1bf728bb5d.jpg

 

五、使用crontab实现定时自动数据备份

        crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。每个用户可以拥有自己的crontab文件。同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc目录中。

        用法:* * * * * command。前面5个*代表执行命令时间,后面的command代表要执行的命令。该命令可以使一个普通的命令、shell脚本、python脚本、java的jar包等

        创建shell脚本

c8704ea5927ee2ec29f437832602320cd8b.jpg

        添加crontab任务

crontab -e

        输入一下内容,“* 3 * * *“表示每天凌晨3点,“/usr/bin/sh”是执行脚本命令的路径,后面的事要被执行的脚本的绝对路径(为避免环境问题,推荐命令带上路径)

fcf40d18453a625ab142374ba0775fcaf68.jpg

        查看任务

crontab -l

8dd71a8540cc238c5f9fe6f37629601cd55.jpg

        重启crond服务

sudo systemctl restart crond

        这样系统将会每天定时执行数据备份的脚本

        这里为了方便我们观察脚本真的被执行了,将数据备份的脚本替换为输出一句“hello!!!”

5f99549dfe1e3a6a873a682bbc755e78153.jpg

        使用“crontab  -e”命令将执行时间修改为每分钟(将前面改为:* * * * *),然后重启crond服务

        会看到一条“您在 /var/spool/mail/zctzl 中有邮件”的消息,使用tail命令查看其内容,可以看到输出的"hello!!!"

aee84b0afc46665e28a541b196467198aee.jpg

        crontab配置文件位于“/etc/crontab”,打开配置文件,可以看到相关配置信息

4697ed2b1a3ccffc948899aa50e7383ef6f.jpg

 

        如果crontab执行过程发生错误,可以在"/var/spool/mail/zctzl"(最后一个替换为自己的用户名)文件查看具体报错信息。

        如果该文件为空,可能是以下原因导致的:

                ①crontab任务没有执行:到"/var/log/"目录下,会找到一些以"cron"+"日期"命名的文件,里面记录了crontab的执行记录(没有细节或报错信息等),如果能找到对应的记录则说明crontab任务执行了。

                ②没有安装postfix服务:“/var/spool/mail/zctzl”里的信息是以邮件的服务发送的,需要确保安装postfix,可以使用"rpm -aq | grep postfix"查看是否安装postfix服务,如果没有安装使用"sudo yum -y install postfix"安装

                ③安装但没有开启postfix服务:使用"sudo systemctl start postfix"启动服务,设置开机自启"sudo systemctl enable postfix"。在实际启用postfix服务是遇到“postfix: fatal: parameter inet_interfaces: no local interface found for ::1”的报错信息,原来是配置文件的原因,需要修改配置文件"vim  /etc/postfix/main.cf",将"inet_interfaces = localhost"改为"inet_interfaces = all",然后再启动即可解决。

92bdf388959d8a86abdc209250e5a6c51b8.jpg

 

 

参考教程:

转载于:https://my.oschina.net/zctzl/blog/1831927

你可能感兴趣的文章
WPF 线程:使用调度程序构建反应速度更快的应用程序
查看>>
wepy - 转换成h5
查看>>
Java命令学习系列(五)——jhat
查看>>
Linux ulimit 命令
查看>>
nefu20
查看>>
Java IO网络编程经典模板
查看>>
路由分组转发过程
查看>>
android 适配器Adpter的使用总结
查看>>
matlab练习程序(白平衡<灰度世界算法>)
查看>>
去重mongodb LIST
查看>>
理解boost::bind的实参传递方式
查看>>
[ASP.NET MVC 小牛之路]05 - 使用 Ninject
查看>>
Unity3D笔记十一 定制导航菜单栏
查看>>
xampp中的apache启动不了显示busy的解决方案
查看>>
Tomcat中server.xml配置及Context的配置直接引用工程,详解
查看>>
PHP奇趣笔试试题一则
查看>>
hdu 4620 Fruit Ninja Extreme
查看>>
C++小知识之Vector用法
查看>>
[Leetcode] Gray Code
查看>>
C#索引器Indexer
查看>>