利用RSYNC进行VPS增量备份

利用Linux的Rsync可以非常简单的对VPS进行增量备份操作,今天我就给大家写一个教程供大家使用。

首先需要下载两个压缩包,一个为服务器端,一个为客户端,服务器端为数据源VPS,客户端为备份VPS,注意:仅支持单向同步,即备份功能。

服务器端下载
客户端下载

配置服务器端,例如IP:111.111.111.111

下载 rsync-server.zip 文件,解压后,上传到/etc目录,需要设置4个地方:

1.设置 /etc/rsyncd/rsyncd.conf 中的服务器端IP为您VPS的IP

1
address = 111.111.111.111

2.设置 /etc/rsyncd/rsyncd.conf 中允许同步的客户端IP,多IP用空格隔开:

1
hosts allow=222.222.222.222

3.设置 /etc/rsyncd/rsyncd.conf 中的需要同步的目录

1
path = /home/wwwroot

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

1
chmod 600 /etc/rsyncd/rsyncd.secrets

5.开启服务器端

1
/wp-content/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

配置备份客户端,例如IP:222.222.222.222

下载 rsync-root.zip 文件,解压后,上传至/root目录中:

1.设置rsync密码/root/pass文件(无须用户名),与服务器端一致,并给予600权限,命令:

1
chmod 600 /root/pass

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

1
2
3
4
5
6
rsync -avzP --delete --password-file=/root/pass username@111.111.111.111::profilename /home/backup
#其中username为服务器端/etc/rsyncd/rsyncd.secrets中用户名
#其中111.111.111.111为服务器端IP
#其中profilename为/etc/rsyncd/rsyncd.conf中定义的配置名
#其中/home/backup为需要同步到的客户端路径
chmod +x /root/rs.sh

可以用 crontab 功能,每1小时,或每天同步一次数据:

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

常见错误解答

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