VPS/云主机 Linux 本地七天循环备份和七牛远程备份

电脑网络

做站最重要的是什么?必须是数据!然而,很多时候都会听到有站长说辛苦了多长时间的数据丢了之类,本站也丢失过2次数据,都是比较意外的情况,却造成了无法挽回的损失。自从换了云主机后,一直在找一个合适的自动备份的方法,昨天晚上终于在张戈博客发现了!实际上张戈在14年就发了篇文章介绍了,可惜一直没有看到,好在现在也不算晚,就赶紧下手吧!

[v_blue]一、类型说明[/v_blue]

①、七天循环备份

受服务器空间制约,我们不可能在VPS上每天都备份一份新的网站数据,一是没必要,二是占空间。我们折中一下,采用星期命名,每次备份将覆盖上星期同一天的文件。从而只备份7份数据,不至于占用特别大的空间。

如果,你的vps很小家子气或是网站数据太庞大,那还可以再折中一下,仅在星期二、四、六做备份,即总共三份数据。甚至还可以选一个星期的某一天做备份,即一周备份一次,也是可以的。

在空间允许的情况下,个人推荐做7天循环备份,在vps数据全部丢失的时候,能最大程度的容灾,恢复到丢失前一天,甚至是当天凌晨备份的所有数据,非常完美!

②、七牛远程备份

七牛远程备份就是将本地的7天备份的数据每天同步至七牛云存储私人空间,就算整台vps奔溃时,还能从容的恢复数据。相当于双保险,要知道七牛和你的vps同时宕机的几率是非常小的。

[v_blue]二、准备工作[/v_blue]

①、整理vps已有网站对应的数据库用户名和密码(如不清楚可直接用mysql的root帐号);

②、整理vps已有网站的根目录所在路径,比如 /home/wwwroot/zhangge.net

③、想好本地想要存放备份文件的路径,比如/home/wwwbackup

④、还没有七牛帐号的,点此注册一个,然后新建一个对象存储–私有空间(为了数据安全,请勿使用公开空间,仅恢复数据时临时切换到公开状态即可),记录空间名以及帐号密钥:

[v_blue]三、本地七天备份[/v_blue]

下载备份文件,上传到VPS中,然后执行chmod +x backup.sh 赋执行权限
[dl href=’http://pan.baidu.com/s/1i50cGtR’]点此下载[/dl]

②、执行./backup.sh –help 可获得如下帮助说明:


③、备份数据库:

命令行示例如下:

./backup.sh db zhangge.net zhangge_db zhangge 123456 /home/wwwbackup/zhangge.net

命令参数说明:

[v_notice]参数1:db,设置备份类型为数据库

参数2:domain 网站域名,如zhangge.net,用于备份文件命名

参数3:dbname 要备份的数据库名次,如zhangge_db

参数4:mysqluser mysql用户名,如不清楚可用mysql 的root帐号

参数5:mysqlpassword mysql密码

参数6:back_path 备份文件存放路径
[/v_notice]

④ 备份网站文件:

命令行示例:

./backup.sh file zgboke.com /home/wwwroot/zgboke.com /home/wwwbackup/zgboke.com

命令参数说明:

[v_notice]参数1:file,设置备份类型为网站文件

参数2:domain 网站域名,如zgboke.com,同样用于备份文件的命名

参数3:site_path 网站文件的路径,如/home/wwwroot/zgboke.com

参数4:back_path 备份文件存放路径[/v_notice]

⑤、建立七天备份的任务计划

I. 先执行crontab -l 看看命令是否存在,若不存在,请使用  yum -y install vixie-cron crontabs 安装crond

II. 确认crond已存在后,请执行/etc/init.d/crond start 确保启动了crond服务,并执行chkconfig crond on设置为开机启动。

III. 执行crontab -e 建立任务计划,如下是我的vps的任务计划,请参考添加:

#backup zgboke.com:
0 3 * * * /root/scripts/backup.sh db zgboke.com zgboke zgboke 123456 /home/wwwbackup/zgboke.com >/dev/null 2>&1
5 3 * * * /root/scripts/backup.sh file zgboke.com /home/wwwroot/zgboke.com /home/wwwbackup/zgboke.com >/dev/null 2>&1
#backup zhangge.net:
10 3 * * * /root/scripts/backup.sh db zhangge.net zhangge zhangge 123456 /home/wwwbackup/zhangge.net >/dev/null 2>&1
15 3 * * * /root/scripts/backup.sh file zhangge.net /home/wwwroot/zhangge.net /home/wwwbackup/zhangge.net >/dev/null 2>&1

每个网站2行,第一行备份数据库,第二行备份网站文件。

crontab参数格式为 {分 时 日 月 周 + 命令行}

所以,拿第2行来说,就是 每天的凌晨3点,执行后面的命令行,最后的>/dev/null 2>&1 表示屏蔽任何日志信息。

注意事项:脚本需要写绝对路径,比如/root/scripts/backup.sh 并且要有执行权限,可以再次执行chmod +x 来赋权

作完以上步骤之后,你的VPS已经实现了本地七天循环备份机制。下面说下同步至七牛的方法。

[v_blue]四、七牛远程备份[/v_blue]

①、下载整理好的七牛同步工具包(仅提供64位):
[dl href=’http://pan.baidu.com/s/1hsawuag’]点此下载[/dl]

②、将工具包解压:

unzip QN_Backup_tools.zip

解压完成后,会得到一个tools文件夹,里面有三个文件,分别为:

[v_notice]qrsync:七牛同步工具 (仅适合Linux64位,其他版本请点此下载相应版本替换此文件)

qrsync.conf :通用配置模版

config.sh:配置初始化辅助脚本[/v_notice]

③、配置qrsync和计划任务

执行初始化脚本:config.sh

[root@Mars_Server tools]# sh config.sh
Please input the access_key:   输入七牛access_key密钥
Please input the secret_key:   输入七牛secret_key密钥
Please input the bucket name:  输入七牛私人空间名称
Please input the backup path:  输入本地七天循环备份存放路径,比如/home/wwwbackup
#回车后将开始初始化配置,出现如下类似信息则成功:
echo =========================The crontab list===============================
...
...
#Add by QN_backup Scripts
0 4 * * * /root/tools/qrsync /root/tools/qrsync.conf >/dev/null 2>&1 &
echo =========================The crontab list===============================
configure Success!

完成以上所有步骤之后,你的vps就实现了本地七天循环备份和七牛远程备份了!

本文转载自张戈博客:https://zhangge.net/4336.html 特此感谢!

继续阅读
发表观点
  • 昵称不能为空
  • 邮箱不能为空
  • 还是写点什么卅...