使用百度网盘备份网站附件和数据库

1.安装百度网盘Python客户端

这是一个百度云/百度网盘的Python客户端。具体的github地址。需要Python2.7 / 3.3 或以上版本支持,一般自带的Python版本是2.6.6,需要升级,Python升级安装教程

升级Python后,需要安装这个工具需要的依赖

1
sudo pip install requests

然后下载

1
git clone https://github.com/houtianze/bypy.git

第一次运行时需要授权,只需跑任何一个命令(比如 bypy.py info)然后跟着说明(登陆等)来授权即可。授权只需一次,一旦成功,以后不会再出现授权提示.

1
2
3
cd bypy

./bypy.py info

上传个文件测试是否配置好了

1
./bypy.py upload ./requirements.txt test/requirements.txt

然后到百度网盘>我的应用数据>bypy看有没对应的文件。

2.然后创建自己的备份脚本

1
vim backup.sh

输入下面内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
SCRIPT_DIR="/root" #这个改成你存放刚刚下载下来的bypy的文件夹位置
DROPBOX_DIR="/backup" #这个改成你的备份文件想要放在百度网盘下面的文件夹名称,如果不存在,脚本会自动创建
BACKUP_SRC="/home/wwwroot /usr/local/nginx/conf" #这个是你想要备份的本地VPS上的文件,不同的目录用空格分开
BACKUP_DST="/tmp" #这个是你暂时存放备份压缩文件的地方,一般用/tmp即可
MYSQL_SERVER="localhost" #这个是你mysql服务器的地址,一般填这个本地地址即可
MYSQL_USER="mysqluser" #这个是你mysql的用户名名称,比如root或admin之类的
MYSQL_PASS="password" #这个是你mysql用户的密码
# 下面的一般不用改了
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"
# 备份mysql数据库并和其它备份文件一起压缩成一个文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
echo "数据库备份完成,打包网站数据中..."
tar cfzP "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
echo "所有数据打包完成,准备上传..."
# 用脚本上传到百度网盘
$SCRIPT_DIR/bypy/bypy.py upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"
if [ $? -eq 0 ];then
echo "上传完成"
else
echo "上传失败,重新尝试"
fi
# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"

然后改为可执行文件:

chmod +x backup.sh #赋予权限

运行的时候就输入下面的代码即可:

./backup.sh

然后通过 cron 来设置定时运行脚本:

crontab -e

加入以下代码,:wq 保存

0 5 * * * /bin/bash /root/backup.sh

国内vps的备份到百度网盘比较块,如果是国外vps可以备份到dropbox,具体看这里