大家一直常说数据无价,数据备份一直是做站必经的一个环节。经过这么长的时间,已经有很多方法来做好备份工作了。不过无论什么方法,最重要的还是需要保证备份处的储存安全。而在众多方法中,保存到Google Drive是一个很好的选择。谷歌盘具有在全球绝大多数区域的可用性及上下行速度的保证且加入G Suite商业版就可以获取无限空间,实在是值得使用。
安装Gdrive
Gdrive项目地址:https://github.com/prasmussen/gdrive
在项目的Readme文件中可以找到各系统环境下的安装包地址
此处我们以Centos 7.1 64bit为环境,所以选择gdrive-linux-x64
wget -O /usr/bin/gdrive "https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download" && chmod +x /usr/bin/gdrive
执行命令
gdrive about
此时程序会给出一个链接,复制这个链接到浏览器并访问,选择你的Google帐号并登陆
授权Gdrive访问你的Google Drive,然后你就可以得到一个授权码,复制授权码回程序。此时你的Google帐号就已经绑定到服务器的gdrive程序上了,程序会返回你的Google Drive相关信息
配置备份
无数据库的网站
对于无数据库的网站比如https://resource.irain.in只要使用简单的zip命令进行全站压缩即可
mkdir /data/backup
cd /data/wwwroot/
zip -r /data/backup/resource.irain.in$(date +%Y%m%d).zip resource.irain.in
含数据库网站
此处以OneinStack为例
cd lnmp
./backup.sh
配置上传
gdrive官方文档中对上传命令的解释
gdrive [global] upload [options]###Upload file or directory
gdrive [global] upload - [options]###Upload file from stdin
方法实现
我们首先在Google Drive中创建一个专门安放各个服务器备份文件的目录,并为每个服务器单独设置目录,得到该目录的ID(见地址栏选中部分)
然后在Linux端测试一次上传
gdrive upload -r --parent 目录ID /data/backup/
此时服务器就开始上传了,等上传完成后到Google Drive中确认是否备份文件上传成功
自动备份设置
crontab -e
对于无数据库的网站
0 1 * * * mkdir /data/backup #凌晨1点创建backup文件夹
1 1 * * * cd /data/wwwroot/;zip -r /data/backup/resource.irain.in$(date +%Y%m%d).zip resource.irain.in #1点01分以域名+日期为名创建备份文件
0 2 * * * gdrive upload -r --parent 目录ID /data/backup/ #2点上传备份文件
0 6 * * * rm -rf /data/backup #6点删除backup文件夹
对于含数据库的网站
0 1 * * * cd ~/lnmp;./backup.sh > /dev/null 2>&1 & #创建lnmp备份
59 1 * * * mkdir /data/backups
0 2 * * * cd /data/; zip -r /data/backups/lnmp_backup$(date +%Y%m%d).zip backup #创建总备份zip
0 3 * * * gdrive upload -r --parent 目录ID /data/backups/ #上传备份文件
0 6 * * * rm -rf /data/backups #删除backup文件夹
退出crontab设置并重启
service crond restart
转载请标注来源