About this blog

MENU

定时备份服务器并上传到Google Drive

2018 年 01 月 06 日 • 阅读: 184 • 技术,教程

大家一直常说数据无价,数据备份一直是做站必经的一个环节。经过这么长的时间,已经有很多方法 (套路) 来做好备份工作了。不过无论什么方法,最重要的还是需要保证备份处的储存安全。而在众多方法中,保存到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相关信息
Gdrive绑定成功

配置备份

无数据库的网站

对于无数据库的网站比如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
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码