51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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),只能手动输入密码。


赞(1)
未经允许不得转载:工具盒子 » rsync进行跨服务器平台之间(windows和linux)的超快速同步数据