每次手动打包备份太麻烦了,尤其随着数据越来越多,于是在这里分享一下利用RSYNC实现VPS间定时增量备份同步的方法。

版权声明

本文中的教程及文件来自小夜博客(https://wiki.vpsmm.com/rsync/),及老左博客(http://www.laozuo.org/4480.html),本人进行了整理和文件转存。


配置服务器端(需要备份的VPS)

下载 rsync-server.zip 文件,解压后,上传到/etc目录,需要设置4个地方:
1.设置 /etc/rsyncd/rsyncd.conf 中的服务器端IP(第7行)为这台VPS的IP

address = 111.111.111.111  #仅作参考

2.设置 /etc/rsyncd/rsyncd.conf 中允许同步(存放备份文件的VPS)的客户端IP(第20行),多IP用空格隔开:

hosts allow=222.222.222.222 #仅作参考

3.设置 /etc/rsyncd/rsyncd.conf 中的需要同步的目录(第35行)

path = /home/wwwroot  #仅作参考

4.设置 /etc/rsyncd/rsyncd.secrets 中用户名及密码,并用命令给予600权限

chmod 600 /etc/rsyncd/rsyncd.secrets

5.设置 /etc/rsyncd/rsyncd.conf 中的用户名(第38行)为上一步中你设置的用户名

auth users = yorkchou  #仅作参考

6.设置 /etc/rsyncd/rsyncd.conf 中的自定义名称(第34行)

[cloud]  #仅作参考

服务器端开始运行

/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf


配置客户端(存放备份文件的VPS)

下载 rsync-root.zip 文件,解压后,上传至/root目录中:
1.设置rsync密码/root/pass文件(无须用户名),与之前服务器端第四步中你所设置的保持一致,并给予600权限,命令:

chmod 600 /root/pass

2.设置rsync路径/root/rs.sh,与服务器端一至,并给予可执行权限,命令:

rsync -avzP --delete  --password-file=/root/pass yorkchou@111.111.111.111::cloud /home/wwwroot
#其中yorkchou为服务器端/etc/rsyncd/rsyncd.secrets中你所设置的用户名
#其中111.111.111.111为服务器端IP
#其中cloud为/etc/rsyncd/rsyncd.conf中34行的自定义命名
#其中/home/wwwroot为需要同步的网站目录

完成后给予执行权限:

chmod +x /root/rs.sh


利用crontab实现定时增量备份同步

首先输入:

crontab -e

然后根据需要设定执行间隔:

25 */1 * * * /root/rs.sh
//每个小时的第25分钟自动运行一次
25 04 */1 * * /root/rs.sh
//每天的25分04时自动运行一次


常见问题

1.服务器端/etc/rsyncd/rsyncd.secrets和备份端/root/pass,均需要600权限
2.可以手动执行/root/rs.sh,看是否能够同步成功
3.切记,此同步是数据完全同步,会删除掉备份端有,而服务器端没有的文件
4.此为增量备份,只同步修改过或没有的文件,原有文件不会下载,很节省时间和流量

Last modification:July 10, 2019
If you think my article is useful to you, please feel free to appreciate