一、Rsync服务端配置
1.  conf配置文件
/etc/rsyncd/rsyncd.conf (默认是没有的,手工创建)
[root@localhost ~]# mkdir /etc/rsyncd
[root@localhost ~]# touch /etc/rsyncd/rsyncd.conf
[root@localhost ~]# touch /etc/rsyncd/rsyncd.secrets
[root@localhost ~]# chmod 600 /etc/rsyncd/rsyncd.secrets
修改rsyncd.conf,添加如下代码
uid = root    #护进程应该具有的uid
gid = root    #守护进程应该具有的gid
read only = no #no客户端可上传文件,yes只读
list = yes #显示服务器上同步数据的目录
max connections = 5 #客户端最大连接数
auth users = abc #认证的用户名
secrets file = /etc/rsyncd/rsyncd.secrets # 指定认定口令文件位置
log file = /var/log/rsyncd.log
transfer logging = yes #开启传输文件的日志
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
gnore errors    #忽略一些无关的IO错误

#是提供共享的模块选项
[test]
            path = /tmp/test
修改rsyncd.secrets,格式如下
#用户名:密码
abc:123
2.启动rsync服务器
用如下命令:
rsync --daemon  --config=/etc/rsyncd/rsyncd.conf
验证启动是否成功
ps -aux |grep rsync
设置启动,/etc/rc.local 文件中加入上面的命令
3. 开放防火墙
[root@localhost ~]# iptables -P INPUT ACCEPT    
[root@localhost ~]# iptables -F
 
二.rsync客户端同步
1.命令:
[root@localhost ~]# rsync -avP --delete [email protected]::test /tmp/test
Password:
这里要输入abc的密码,是服务器端的rsyncd.secrets指定的
说明:
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-P 传输进度;
--delete 删除那些客户端中服务器没有的文件
另外可以用 --password-file=rsync.password 指定密码文件
命令如下
[root@localhost ~]# touch rsync.password
[root@localhost ~]# chmod 600 rsync.password
[root@localhost ~]# echo "123"> rsync.password
[root@localhost ~]# rsync -avP --delete --password-file=rsyncd.password [email protected]::test /tmp/test
2.设置自动同步
[root@localhost ~]# touch rsyncd.sh
[root@localhost ~]# chmod +x rsyncd.sh
编辑rsyncd.sh, 内容如下
#!/bin/sh
rsync -avP --delete --password-file=rsyncd.password [email protected]::test /tmp/test
修改crond服务器的配置文件
[root@localhost ~]# crontab -e
添加下面代码
23 59 * * *     /home/root/rsync.sh     1> /dev/null
意思是在每天的23点59分,开始同步数据,   /home/root/rsync.sh是脚本绝对路径.
重启crond服务
[root@localhost ~]# /etc/init.d/crond restart
 
rsync的配置相当简单