一、关于
有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百度网盘数据的同步。 这是一个百度云的 Python 客户端,其主要目的和功能,就是为 Linux 使用者提供一种在命令行下,使用百度云盘中的存储空间的方法。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。
二、环境配置
python2.7.5 centos7
查看centos版本信息
代码语言:javascript复制cat /etc/redhat-release
查看linux版本
代码语言:javascript复制cat /proc/version
查看python版本
代码语言:javascript复制python
(此命令查看过后用Ctrl-D退出或输入quit()退出)
安装pip
、bypy
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}
代码语言:javascript复制sudo pip install bypy
sudo pip install requests
如果出现下面这个,说明安装成功
上传到百度网盘
1、执行
代码语言:javascript复制bypy info --这里随意执行一条操作命令目的是为了授权
授权完成后可查看相关信息,由于百度PCS API权限限制,程序只能存取百度云端bypy目录下面的文件和目录
代码语言:javascript复制bypy info #空间使用信息
bypy list #目录信息
之后是同步文件到百度网盘
代码语言:javascript复制bypy upload #要注意切换到你想要上传的目录在执行这个命令
三、bypy常用方法
重新绑定云盘用户
1:清空认证
代码语言:javascript复制bypy -c
2:在云盘创建文件夹
代码语言:javascript复制bypy mkdir name
3:上传本地文件到云盘指定路径
代码语言:javascript复制bypy upload 本地文件名 /云盘文件名
4:查看云盘列表
代码语言:javascript复制bypy list
5:可以选择文件夹下载 百度网盘/应用文件/bypy/aaa/bbb
文件到本地
代码语言:javascript复制bypy downdir /aaa/bbb
下面才是重头戏,上面只是搭建过程,我们要备份网站,首先要确定好备份目录以及要上传百度网盘的目录 比如备份网站目录(www),上传目录 /home/backup/这个自己随意,编写脚本
代码语言:javascript复制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备份文件到云盘指定位置。
代码语言:javascript复制touch /home/backup/baidu_backup.sh
chmod 777 /home/backup/baidu_backup.sh
脚本编写成功之后先实验一下能不能备份和上传
代码语言:javascript复制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
代码语言:javascript复制systemctl restart crond