VPS定时自动备份并同步到七牛云实现方法

对于站长来说,数据可是命根子。本来11区的樱花VPS稳定性毋庸置疑,代购的老易也是尽职尽责,然而遭不住同ip段总有人滥用,樱花那边会无差别ban掉整个ip段的所有机器,所以还是每天备份做好保险吧。使用樱花的VPS有3年多了,以前是用同步网站文件夹到本地电脑的方式备份。最近入手了新的备份VPS,干脆来个三重保险,把数据打包同步到七牛云存储上(点此免费注册,可享有10G免费存储空间和4G免费CDN流量)。

网上找出来很多脚本,基本都是根据张戈博客的代码修改的,weindy也使用了这个脚本。下面记录操作的步骤。

以root账户登陆VPS后,输入(/root是该脚本保存的路径,个人习惯将这些脚本放到/root下):

将以下备份的sh脚本代码粘入(为了数据安全,压缩包加了密码,请自行替换下面代码中的两处“你的密码”):

然后按esc,输入英文冒号+wq保存退出。再给脚本添加可执行权限:

这个脚本的用法具体为:

备份网站:

参数1:备份类型,file为文件,db为数据库
参数2:域名,备份文件名称
参数3:需备份的网站文件目录
参数4:备份文件存放目录

备份数据库:

参数1:备份类型,db为数据库,file为文件
参数2:域名,备份文件名称
参数3:数据库名称
参数4:数据库登陆用户名
参数5:数据库登陆密码
参数6:备份文件存放目录

既然是自动备份,以上命令肯定不用每天都手动输入的。输入以下命令建立计划任务列表:

粘贴以下代码:

同样按esc,输入英文冒号+wq保存退出。

通过以上代码,每天凌晨3点30分会自动备份网站,4点会自动备份数据库。但是,这些备份仅仅是备份到本机,通过七牛云提供的新命令qshell(网上文章一般都介绍的qrsbox,然而官方已经废弃,不知道是否还能使用,新命令qshell更强大更全面,可参考帮助文档))可以将加密码的备份压缩包同步到七牛云上。

先下载qshell,当前版本为v2.3.4:点击下载

下载之后压缩包里有一堆对应不同平台,根据你VPS的linux版本,将qshell_linux_x86(对应32位)或者qshell_linux_x64(对应64位)改名为qshell,通过FTP等上传方式上传到VPS,放在你习惯的文件夹内,weindy这边放在/home下。然后为文件添加可执行权限:

为了让qshell能在任意位置运行,需要把qshell所在的路径写入环境变量,这里CentOS默认的配置文件在/root/.bashrc,所以进行以下操作:

然后按insert键,切换到插入模式,在# User specific aliases and functions这行下面插入

之后按半角冒号,输入wq然后回车,保存设置文件。

再来,需要设置七牛云的账号和密钥信息,请将ak,sk和name替换成自己的密钥和账号。其中,ak和sk在个人中心>密钥管理可以看到,name是你注册七牛云的邮箱:

此时,就可以用命令测试是否能同步了,下方的src-dir参数是备份所在的压缩包路径,bucket是在七牛云建立的对象存储空间:

执行结果如下:

如果执行完成,看到100%字样,说明已经同步完成。或者可以查看最后这行log日志文件,里面也有上传进度的记录。

最后,我们要让系统每天自动运行这个上传脚本。同样再次输入:

将同步代码粘入下方,需要注意第一个参数是备份保存的路径,第二个参数是在七牛云建立的存储空间名称:

该代码每晚4点30分执行,可以自行调整时间。你也可以举一反三,用来备份nginx配置或者科学上网的那堆设置什么的。不过因为压缩包有密码,备份的脚本一定要记好密码是什么,不然万一VPS挂了,需要恢复备份的时候解不开压缩包那可真就GG了哈。

发表评论

电子邮件地址不会被公开。 必填项已用*标注