自动将服务器内数据备份到百度网盘,实现每天自动备份,并且自动删除7天前的备份,保证数据安全是做为运维人员的第一要素。
我们实现自动备份到百度网盘主要是通过bypy 进行操作。具体如下:
1,在服务器内安装bypy,bypy 基于Python的pip包管理工具进行安装,首先确认服务器内的python版本是2.7.*
确认服务器python 版本命令:python
2,安装pip、bypy
sudo yum -y install epel-release
sudo yum -y install python-pip
sudo yum clean all
sudo pip install --upgrade pip
#如果无法更新可以使用命令:sudo python -m pip install --upgrade pip
如果还是提示错误:
手动下载get-pip.py文件:
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
#进行更新:
sudo python get-pip.py
安装bypy:
sudo pip install bypy
sudo pip install requests
3,授权登陆百度网盘
执行命令:bypy info
访问屏幕显示的连接,并登陆授权,获取到百度网盘的授权码后,复制,粘贴到shell 窗口中回车。
4,授权成功后,就可以通过命令查看或上传、下载、删除百度网盘中的数据了,相关命令如下:
注:连接到的百度网盘目录为:我的网盘/我的应用数据/bypy目录下,也可自行创建下级目录使用,但无法控制bypy上层目录。
bypy info #空间容量使用信息
bypy list #查看百度网盘目录信息
bypy upload 文件 #将指定文件上传到百度网盘
bypy downdir 文件 #将百度网盘中的文件下载到本地服务器上
bypy delete 文件 #删除百度网盘中指定文件
bypy cmpare #比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功
5,连接上了百度网盘,通过以上命令可以进行相关操作后,就可以实现很多功能了,比如写个脚本进行自动备份上传百度网盘和自动删除7天前的数据
注:文件存放路径不同,脚本命令也可能存在一些不同,根据自行服务器环境与文件存放进行适当修改
我写的一个简单脚本如下:
创建 backup_baidupan.sh:vi backup_baidupan.sh
脚本内命令如下:
#!/bin/bash
backtar="web"`date +%Y%m%d`
rmbacktar="web"`date -d 7 days ago +"%Y%m%d"`
sql="sql"`date +%Y%m%d`
rmsql="sql"`date -d 7 days ago +"%Y%m%d"`
mysqldump -u数据库用户-p数据库密码--databases要导出的数据库名 /home/backup/${sql}.sql
tar -czf /home/backup/${sql}.tar.gz /home/backup/${sql}.sql
zip -q -r /home/backup/${backtar}.zip /home/wwwroot/
bypy upload /home/backup/${backtar}.zip
bypy upload /home/backup/${sql}.tar.gz
if [ -f "/home/backup/${rmbacktar}.zip" ];then
rm -f /home/backup/${rmbacktar}.zip
rm -f /home/backup/${rmsql}.sql
rm -f /home/backup/${rmsql}.tar.gz
bypy delete ${rmbacktar}.zip
bypy dalete ${rmsql}.tar.gz
fi
命令解析:
首先定义网站备份名、删除网站备份名(7天前)、数据库备份名、删除数据库备份名(7天前)
导出数据库(红色字体信息修改成您自己的信息)
打包数据库
打包网站数据
上传网站数据备份
上传数据库备份
删除7天前的网站数据、数据库备份;删除百度网盘内7天前的数据备份
6,给脚本添加可执行权限:chmod 755 backup_baidupan.sh
7,将脚本加入到任务计划内,进行每天自动执行:
编辑任务计划:crontab -e
添加:30 3 * * * /shell/backup_baidupan.sh
8,到此完美实现自动备份到百度网盘和自动清理7天前的网盘中的数据。