利用crontab+bypy实现自动备份数据到百度网盘(centos)

一、关于

有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百度网盘数据的同步。 这是一个百度云的 Python 客户端,其主要目的和功能,就是为 Linux 使用者提供一种在命令行下,使用百度云盘中的存储空间的方法。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。

二、环境配置

python2.7.5+centos7

查看centos版本信息

cat /etc/redhat-release

查看linux版本

cat /proc/version

查看python版本

python

(此命令查看过后用Ctrl-D退出或输入quit()退出)
安装pipbypy

sudo yum -y install epel-release     #这是安装pip时要用到的东西
sudo yum -y install python-pip
sudo yum clean all
sudo pip install --upgrade pip     #更新 

{message type=”error”}如果无法更新可以使用命令:sudo python -m pip install –upgrade pip{/message}

sudo pip install bypy
sudo pip install requests

如果出现下面这个,说明安装成功

上传到百度网盘

1、执行

bypy info  --这里随意执行一条操作命令目的是为了授权

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

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

之后是同步文件到百度网盘

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

三、bypy常用方法

重新绑定云盘用户

1:清空认证

bypy -c

2:在云盘创建文件夹

bypy mkdir  name

3:上传本地文件到云盘指定路径

bypy upload 本地文件名 /云盘文件名

4:查看云盘列表

bypy list

5:可以选择文件夹下载 百度网盘/应用文件/bypy/aaa/bbb文件到本地

bypy downdir /aaa/bbb 

下面才是重头戏,上面只是搭建过程,我们要备份网站,首先要确定好备份目录以及要上传百度网盘的目录
比如备份网站目录(www),上传目录 /home/backup/这个自己随意,编写脚本

vim /home/backup/backup.sh

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:  backup.sh 
# Describe:  Used for database backup
# Revision:  1.0
# Date:    2021/2/25
# Author:  小白 の 博客
 
# 设置mysql的登录用户名和密码(根据实际情况填写)
MYSQL_USER="root"                #数据库用户
MYAQL_PASSWORD="数据库密码"       #数据库密码
MYSQL_HOST="localhost"           #数据库IP(本地)
MYSQL_PORT="3306"                #数据库端口
BACKUP_DIR=/home/backup/         #备份到哪个目录
 
DATE=`date +%Y%m%d%H%M`          #时间
echo "Backup Begin Date:" $(date +"%Y-%m-%d %H:%M:%S")
# 备份全部数据库
mysqldump -h$MYSQL_HOST -P$MYSQL_PORT -u$MYSQL_USER -p$MYAQL_PASSWORD -R -E --all-databases --single-transaction > $BACKUP_DIR/mysql_b
ackup_$DATE.sql
#保留3天的数据
find $backup_dir -mtime +7 -type f -name '*.sql' -exec rm -rf {} \;
echo "Backup Succeed Date:" $(date +"%Y-%m-%d %H:%M:%S")
 
#备份html文件
tar zcPf $BACKUP_DIR/html_${DATE}.tar.gz /var/www/html

之后修改backup.sh文件权限

chmod 755 /home/backup/backup.sh

四:定时上传到百度云盘

bypy 无法同时上传多个文件,百度云不支持上传文件夹,可以通过压缩的方式解决。

1:新建一个脚本文件写入下面的指令,上传当日sql备份文件到云盘指定位置。

touch /home/backup/baidu_backup.sh
chmod 777 /home/backup/baidu_backup.sh

脚本编写成功之后先实验一下能不能备份和上传

sh /home/backup/backup.sh
sh /home/backup/baidu_backup.sh

五:crontab -e

编写定时任务 crontab -e

#每天早上2点执行数据库和html备份脚本
 
0 2 * * * /bin/sh /home/backup/backup.sh >/dev/null 2>&1
 
#每天早上4点执行上传百度网盘脚本
 
0 4 * * * /bin/sh /home/backup/baidu_backup.sh >/dev/null 2>&1

最后记得重启crond

systemctl restart crond
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    请登录后查看评论内容