首先,要安装rsync
安装完以后,在源机(也就是服务器端)上传服务端控制脚本
下载 rsync-server.zip 文件,解压后,上传到/etc目录,需要设置4个地方:
1.设置 /etc/rsyncd/rsyncd.conf 中的源机(服务器端)IP(第7行)为您VPS的IP(即替换111.111.111.111)
- address = 111.111.111.111
复制代码
2.设置 /etc/rsyncd/rsyncd.conf 中允许同步的备份机(即客户端)IP(第20行),多IP用空格隔开:(即把222.222.222.222换成用来备份的机器的ip)
- hosts allow=222.222.222.222
复制代码 3.设置 /etc/rsyncd/rsyncd.conf 中的需要同步的目录(第35行)
4.设置 /etc/rsyncd/rsyncd.secrets 中用户名及密码,并用命令给予600权限
- chmod 600 /etc/rsyncd/rsyncd.secrets
复制代码 设置完成后,在源机启动服务
- /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
复制代码 设置开机自启动配置备份机(客户端)
1.设置rsync密码/root/pass文件(无须用户名),与服务器端一至,并给予600权限,命令: - rsync -avzP --delete --password-file=/root/pass vpsmmuser@111.111.111.111::vpsmmhome /home/wwwroot
- #其中vpsmmuser为服务器端/etc/rsyncd/rsyncd.secrets中用户名
- #其中111.111.111.111为服务器端IP
- #其中vpsmmhome为/etc/rsyncd/rsyncd.conf中34行自定义命名
- #其中/home/wwwroot为需要同步的网站目录
复制代码 设置定时执行- 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.此为增量备份,只同步修改过或没有的文件,原有文件不会下载,很节省时间和流量 如果没有开启873端口,使用如下命令 - iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
复制代码
还有不用脚本的办法:- rsync -rvtz root@192.168.0.1:/home/ftp /home/ftp
复制代码 上面这是增量备份的脚本
说明
rsync -rvtz [登陆账号]@[登陆机器ip]:[要备份的目录] [本机的存放备份文件的目录]
例子:
rsync -rvtz root@192.168.1.1:/root/software /root/back_data/
还有一种是镜像办法
- rsync -rvtz --delete root@192.168.0.1:/home/ftp /home/ftp
复制代码 这个是源端删,备份用机也会删。
执行这个任务可以设置免密码登陆。不过需要在2个服务器间配置。
第一步:
在备份机执行
然后一路回车第二步:
- ssh-copy-id -i ~/.ssh/id_rsa.pub 源机IP
复制代码 然后输入源机密码,输入完回车即可。
如果出现
- Now try logging into the machine, with "ssh '这里是你源机IP'", and check in:
- .ssh/authorized_keys
- to make sure we haven't added extra keys that you weren't expecting.
复制代码 就说明成功了 |