一、linux服务端:
1、iptable放行873
systemctl stop firewalld
systemctl disabled firewalld
yum install iptables* -y
iptables -X
iptables -F
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
service iptables save
2、新建rsyncd.paswd #少一个s
vim /etc/rsyncd.paswd #少一个s
rsyncer:123
3、给rsyncd.paswd授权600. #少一个s
chmod 600 /etc/rsyncd.paswd #少一个s
4、修改rsyncd.conf配置文件
vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes

[ftp]
path = /tmp/mysql
comment = ftp export area
read only = yes
exclude = test
auth users = rsyncer
secrets file = /etc/rsyncd.paswd #少一个s
hosts allow = 94.4.19.202/255.255.255.0
5、启动rsyncd服务
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
systemctl start rsyncd
二、windows服务器:
前提:
先放行 tcp:873端口。
1、安装cwRsyncServer 4.1 installer (不要用4.2版本的) 。
2、保留默认的用户和密码:用户:svccwrsync 密码:*(这个账户和密码只是用来启动rsync服务的,没其他任何作用)。
3、一直默认下一步,直到完成,完成后系统会自动创建用户:svccwrsync (不要删除和改动它) 。
3、控制面板--服务--rsyncserver--自动--启动。
4、编辑 c:\program files(x86)\icw\rsyncd.conf

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
uid = 0
gid = 0

[ftp]
path = /cygdrive/d/work
read only = true
transfer logging =yes
auth users = rsyncer
secrets file = rsyncd.paswd #paswd少了一个s

5、新建c:\program files(x86)\icw\rsyncd.paswd,增加文件的安全权限:svccwrsync,修改安全的所有者为用户组:administrators 。 #paswd少了一个s
rsyncer:123
6、编辑d:\work,增加文件的安全权限:users(读取和运行)如果是加入域就用:domain users(读取和运行)。

三、linux客户端:
手动同步
rsync -avi [email protected]::ftp /root/backup

免密同步
vim /root/paswd #少一个s
123

rsync -avi --pasword-file=/root/paswd [email protected]::ftp /backup #少一个s

做成shell脚本,再crontab就好了。

四、windows客户端

先安装cwRsync_4.2.0_Installer (也可以安装4.1版本的)

1、在 rsync客户端(windows)的D盘新建rsyncd.paswd( #paswd少一个s),用记事本打开,写入密码(比如123)。
2、安装cwrsync installer 然后在安装目录bin下执行cmd
chmod.exe -c 600 /cygdrive/d/rsyncd.paswd #paswd少一个s
3、把d:\rsyncd.paswd 的“所有者” 改为 administrator
3、(此步骤可不做) 把d:\rsyncd.paswd 的“文件权限” 改为 administrator(如果你是用其他账户登录的,那你就改为其他用户如user1 )。#paswd少一个s
4、 输入
rsync.exe -vzrtopgu --progres --delete [email protected]::ftp /cygdrive/D/bak --pasword-file=/cygdrive/d/rsyncd.paswd #progres少一个s,pasword少了一个s
备注:ftp是服务器端定义的目录,/cygdrive/D/bak 是本地用来存放拉回来的数据的目录。
4、做成bat脚本,放到计划任务
@echo off
“c:\program files(x86)\cwrsync\bin\rsync.exe” -vzrtopgu --progres --delete [email protected]::ftp /cygdrive/d/bak --pasword-file=/cygdrive/d/rsyncd.paswd #progres少一个s,pasword少了一个s
@echo off

温馨提示:
server端和client都是工作组模式是OK的。
server端和client都是AD域模式是OK的。
server端是工作组,client是AD域也是OK的。
server端是域,client端是工作组,是不支持直接调用密码文件的(--password-file),只能手动输入密码。