rsync进行跨服务器平台之间(windows和linux)的超快速同步数据
一、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.passwd
vim /etc/rsyncd.passwd
rsyncer:123
3、给rsyncd.passwd授权600.
chmod 600 /etc/rsyncd.passwd
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.passwd
hosts allow = 94.4.19.202/255.255.255.0
5、启动rsyncd服务
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
systemctl start rsyncd
注意事项:
如果遇到修改了rsyncd.conf文件
1、需要先netat -tunpla| grep rsyncd 查出进程号,kill -9 进程,
2、再rm -fr rsyncd.pid,
3、最后启动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.passwd
5、新建c:\program files(x86)\icw\rsyncd.passwd,增加文件的安全权限:svccwrsync,修改安全的所有者为用户组:administrators 。
rsyncer:123
6、编辑d:\work,增加文件的安全权限:users(读取和运行)如果是加入域就用:domain users(读取和运行)。
三、linux客户端:
手动同步
rsync -avi rsyncer@94.4.19.111::ftp /root/backup
免密同步
vim /root/passwd
123
rsync -avi --password-file=/root/passwd rsyncer@94.4.19.201::ftp /backup
做成shell脚本,再crontab就好了。
四、windows客户端
先安装cwRsync_4.2.0_Installer (也可以安装4.1版本的)
1、在 rsync客户端(windows)的D盘新建rsyncd.passwd,用记事本打开,写入密码(比如123)。
2、安装cwrsync installer 然后在安装目录bin下执行cmd
chmod.exe -c 600 /cygdrive/d/rsyncd.passwd
3、把d:\rsyncd.paswd 的“所有者” 改为 administrator
3、(此步骤可不做) 把d:\rsyncd.passwd 的“文件权限” 改为 administrator(如果你是用其他账户登录的,那你就改为其他用户如user1 )。
4、 输入
rsync.exe -vzrtopgu --progress --delete rsyncer@94.4.1.111::ftp /cygdrive/D/bak --password-file=/cygdrive/d/rsyncd.passwd
备注:ftp是服务器端定义的目录,/cygdrive/D/bak 是本地用来存放拉回来的数据的目录。
4、做成bat脚本,放到计划任务
@echo off
“c:\program files(x86)\cwrsync\bin\rsync.exe” -vzrtopgu --progress --delete rsyncer@94.4.1.11::ftp /cygdrive/d/bak --password-file=/cygdrive/d/rsyncd.passwd
@echo off
温馨提示:
server端和client都是工作组模式是OK的。
server端和client都是AD域模式是OK的。
server端是工作组,client是AD域也是OK的。
server端是域,client端是工作组,是不支持直接调用密码文件的(–password-file),只能手动输入密码。