让服务器每天自动备份并上传到Google Drive

2017-11-02

这几天Typecho更新到1.1正式版,而我也将博客从hexo换回了Typecho,为此专门新购了一台云主机,因为之前有数次丢失数据的惨痛教训,那么我自然要吸取教训把备份做好了。

因为服务商并没有提供快照功能,而且安全起见也不应该备份到同一个服务商,然后我就用lnmp.org一键包里提供的备份脚本和Gdrive配合写了一个脚本,然后用cron每天自动备份并上传到Google Drive下面说一下实现过程。

4cc4b157fe541164e6dbdb05d48b05b7.jpg

配置备份脚本

我用的是lnmp一键安装包里面内置了备份脚本,相信只要不是自己编译的环境大部分都集成了备份脚本,这里不再详细介绍。

具体过程请移步 https://lnmp.org/faq/lnmp-1-2-tools.html

安装Gdrive

Gdrive项目地址:https://github.com/prasmussen/gdrive

打开https://github.com/prasmussen/gdrive/blob/master/README.md#downloads 选择适合自己服务器的版本下载

我用的系统是Centos 64位版本所以我选择gdrive-linux-x64

那么我执行如下命令将其下载并安装

wget -O /usr/bin/gdrive "https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download" && chmod +x /usr/bin/gdrive

接下来我们执行 gdrive about 程序会返回一个链接,然后我们打开这个链接根据提示输入账号密码获取一个验证码输入到程序中。

不出意外的话我们重新执行 gdrive about 这个命令会返回你的账户信息,至此gdrive安装并配置完成。

编写脚本并添加到cron使其自动工作

这里我直接贴我写的脚本代码,不出意外是可以直接使用的,不过这里要注意一点,你没有更改备份目录,否则需要自行修改脚本。

#!/bin/bash
BakDate=`date +%Y%m%d`
/root/lnmp1.4/tools/backup.sh
mv /home/backup /home/${BakDate}
/usr/bin/gdrive upload --recursive /home/${BakDate}
rm -rf /home/backup /home/${BakDate}

然后我们执行 crontab -e 在最后面添加一行 59 23 * * * /root/bak.sh 其中/root/bak.sh是脚本的完整路径,需要你根据实际情况修改。

至此,所有的工作都已经做完了,不出意外,每天的23点59分系统都会自动备份你的服务器数据并上传到Google Drive