软件环境:CentOS X86-64版
 
很多网上的教程说,如果Rsync要做服务器端,要先装Xinetd,其实大可不必。rsync这个程序是集客户端和服务器于一身的。只要在启动的时候加上【–daemon】参数(注意,是两个短中划线),就可以作为服务器端运行。当然,我们需要一个配置文件来对它的运行做一些设置。这个文件现有系统中没有,需要手动新建。

#vi /etc/rsyncd.conf

lock file = /var/run/rsync.lock /*运行的锁文件*/
log file = /var/log/rsyncd.log /*生成的日志文件*/
pid file = /var/run/rsyncd.pid /*pid文件*/
 
[backup] /*这个是资源名称,在同步的时候会用到*/
path = /var/vhosts/wawa81 /*资源的根目录*/
auth users = root /*授权使用的用户,必须是该服务器上真实存在的用户*/
uid = root
gid = root
secrets file = /etc/pwdss.srv /*密码文件,采用“用户名:密码”的格式(中间是英文冒号)*/
read only = no /*是否只读的设置*/

如果有多个资源需要同步,将[backup]的部分,按照实际需要新建一份,起一个不同的名字就可以了。如下
[web] 
path = /home/admin/public_html 
comment = Mirror to Hk server 
read only = true 
list = false 
auth users = lixiphp
rsyncd.conf的共同部分设置还有很多,如有关日志格式的设置,在这里我没做设置,因此没写入文件中。如下可做参考
max connections = 4 
read only = true 
#hosts allow = 202.207.177.180 
hosts allow = * 
transfer logging = true 
log format = %h %o %f %l %b 
slp refresh = 300 
 
采用rsync –daemon –config=/etc/rsyncd.conf的命令行格式,就可以让rsync以服务器模式,并按照配置文件的约束运行。
创建一个密码记录文件,存放的路径和名字任意。这个文件存在的意义在于如果在计划任务的时候,可以从该文件中获取密码,使计划任务可以自动运行。
/etc/pwdss.srv
root:123456
设置权限为只读:
chmod 600 /etc/pwdss.srv
 
服务器端配置成功,接下来配置客户端
创建一个密码记录文件,存放的路径和名字任意。这个文件和服务器端的是配套的,格式是只写密码就可以了。
/etc/pwdss

123456

设置权限为只读:
chmod 600 /etc/pwdss
 
rsync -aqzH –progress –delete –password-file=/etc/pwdss rsync://root@192.168.210.152/backup  /var/vhosts/wawa81
–password-file这里填写的是客户端的密码文件
rsync://root@192.168.210.152/backup  这里的root要和rsyncd.conf中【backup】里的auth users一致,backup就是前面提到的资源名称,192.168.210.152是服务器的IP或者域名
/var/vhosts/wawa81,是备份到本地的目录。
以“拉”模式同步文件
rsync -avz –delete rsync://root@192.168.210.152/backup /var/vhosts/wawa81 –password-file=/etc/pwdss
 
计划任务设置(这个还没设置过)
创建backup目录存放备份脚本
mkdir /var/backup
vi /var/backup/sync.sh

#/bin/sh 

rsync -aqzH –progress –delete –password-file=/etc/pwdss rsync://root@192.168.210.152/backup  /var/vhosts/wawa81

添加定时任务:

crontab -e

*/1 * * * * /var/backup/sync.sh > /dev/null 2>&1 

作者 龙飞