无人值守自动备份网站的方法

两天前,我博客所在服务器的硬盘故障了,导致数据全部丢失。也怪我吊儿郎当,平时没有定期备份数据。不过,这年头有时间写独立博客就已经很不容易了,定期备份数据什么的就更难了。对于没有技术力的我来说,备份确实是一件难事,呲牙。

好在我可以通过谷歌快照找回大部分的文章,已经恢复得差不多了。那些不重要的文章,就不要了,就当做了一次内容整理吧。接下来,数据备份对我来说十分重要,而且我已经做好了,于是现在我要把我的方案分享出来,让更多小白受益。

由于我的博客是在vps主机上建立的,所以自由度很高。而且我还有另一台vps,用于存放备份数据。

我的方法很简单,通过CentOS系统自带的Crontab功能,每日定时执行备份命令,完全的无人值守:
1. 通过mysqldump命令导出数据库文件到网站目录
2. 通过rsync远程同步功能实现网站目录的异地备份


具体实现步骤:

首先,点击上面的两个链接,把自己网站的 导出数据库文件和远程同步 的命令准备好。

其次,把准备好的命令加入Crontab文件。举个例子,本博客的备份命令如下:

每天下午13:40导出数据库文件到网站根目录,vps里执行:
echo "40 13 * * * root mysqldump -u johntito -pjohntitor123456 johntitordb > /home/wwwroot/www.johntitorblog.com/johntitordb-bak.sql" >> /etc/crontab

每天下午13:50同步网站目录到远程服务器,vps执行:
echo "50 13 * * * root sshpass -p zhangrui123456 rsync -avzPu /home/wwwroot/www.johntitorblog.com 198.42.48.69:/root/johntitorblog-bak/ > /root/Log-johntitorblog-bak.log 2>&1" >> /etc/crontab

service crond restart
(centos7开始用systemctl restart crond)

简单说明下,通过echo,把命令写入/etc/crontab文件,再restart crontab使其生效。第二段的Log-johntitorblog-bak.log是个log文件,方便我查看备份的时间和状态。
即便是设置成每日定时备份,也不费流量,因为用的是增量备份(只传输新增的或更新的文件)。

无人值守自动备份网站的方法》有2个想法

发表回复

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