一、关于
有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百度网盘数据的同步。
这是一个百度云的 Python 客户端,其主要目的和功能,就是为 Linux 使用者提供一种在命令行下,使用百度云盘中的存储空间的方法。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。
二、环境配置
环境:Centos7+python2.7.5
查看系统是否有python环境(一般系统自带python2.7)
python
安装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
如出现如下界面,则安装完成
三、授权登陆
执行bypy info
bypy info
访问方框内的连接
登陆百度云账号
获得授权码
粘贴到终端上
授权完成后可查看相关信息,由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录
bypy info #空间使用信息bypy list #目录信息
四、使用bypy备份数据
例如我们可以备份上传‘’/test"目录下的所有文件
把本地当前目录下的文件同步到百度云盘:
bypy upload #要注意切换到你想要上传的目录在执行这个命令
登录到网盘上,可以看到所有文件已经上传
把云盘上的内容同步到本地:
bypy downdir
比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功:
bypy cmpare
比较当前目录与云盘目录,结果如下
五、使用crontab实现定时自动数据备份
crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。每个用户可以拥有自己的crontab文件。同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc目录中。
用法:* * * * * command。前面5个*代表执行命令时间,后面的command代表要执行的命令。该命令可以使一个普通的命令、shell脚本、python脚本、java的jar包等
创建shell脚本
添加crontab任务
crontab -e
输入一下内容,“* 3 * * *“表示每天凌晨3点,“/usr/bin/sh”是执行脚本命令的路径,后面的事要被执行的脚本的绝对路径(为避免环境问题,推荐命令带上路径)
查看任务
crontab -l
重启crond服务
sudo systemctl restart crond
这样系统将会每天定时执行数据备份的脚本
这里为了方便我们观察脚本真的被执行了,将数据备份的脚本替换为输出一句“hello!!!”
使用“crontab -e”命令将执行时间修改为每分钟(将前面改为:* * * * *),然后重启crond服务
会看到一条“您在 /var/spool/mail/zctzl 中有邮件”的消息,使用tail命令查看其内容,可以看到输出的"hello!!!"
crontab配置文件位于“/etc/crontab”,打开配置文件,可以看到相关配置信息
如果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",然后再启动即可解决。
参考教程: