使用rsync在windows(服务端)与linux(客户端)之间同步
说明:
1、cwRsyncServer服务端
系统:Windows7
IP地址:192.168.0.110
2、Rsync客户端
系统:CentOS 6.7
IP地址:192.168.0.141
实现目的:
Rsync客户端每天凌晨5:00自动同步cwRsyncServer服务端G:\rsyncfile目录中的数据到自己的/tmp/rsync目录中
一、cwRsyncServer服务端配置
下载地址:
https://www.backupassist.com/rsync/
安装cwRsyncServer_4.2.0_Installer
Next
I Agree(同意)
填写安装路径
Next
Service account:test (新建的一个系统账户)
Type password:123456(密码)
Confirm password:123456(密码)
备注:系统会自动创建一个账户:test来运行cwRsyncServer服务端程序
以上信息默认即可
Install (安装)
Close(关闭),安装完成
开始-设置-控制面板-管理工具-服务
找到RsyncSever选项,双击打开
启动类型:自动
点“启动”
应用-确定
在window7中创建一个存放文件的目录(rsync同步用的),我这里创建的是G:\rsyncfile:
右击rsyncfile目录,打开属性——安全,把安装rsyncd时,设置的帐号添加进来,并设置权限为完全控制(我安装rsyncd的时候,设置了帐号是test,密码123456):
修改配置文件:
打开G:\rsyncserver\ICW\rsyncd.conf
修改内容大概如下:
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[rsyncfile]
path = /cygdrive/g/rsyncfile
read only = false
transfer logging = yes
auth users = test
secrets file = etc/rsyncd.secrets
UID = 0
GID = 0
注意path路径,path = /cygdrive/是固定的,不要改,后面连接的g/rsyncfile,则是我们刚才所建的目录路径,刚才我是建在G盘的,目录为rsyncfile。
其它参数详解:
read only = true #客户端只读
list = no#不允许列出文件
hosts allow=192.168.0.141 #允许连接IP,多个IP中间用英文状态下逗号隔,不限制IP填写*即可
auth users =test #允许连接的用户名
secrets file = etc/rsyncd.secrets #存放用户名密码的认证文件路径
创建rsync同步帐号密码文件:
进入:G:\rsyncserver\ICW\etc,创建文件:rsyncd.secrets,文件里输入test:123456,test是同步帐号,123456是同步密码
cwRsyncServer服务端安装设置完成
二、Rsync客户端配置
1、安装Rsync客户端软件
yum install rsync -y
chkconfig rsync on #设置开机启动rsync
/etc/init.d/xinetd start #启动(CentOS中,Rsync是以xinetd来管理的)
2、测试Rsync客户端是否与cwRsyncServer服务端通信成功(cwRsyncServer服务端防火墙需要开启tcp 873端口)
yum install telnet #安装telnet测试工具
telnet 192.168.0.110 873 #输入命令后回车,如下图所示,表示通信成功
3、测试数据同步
[root@host1 rsync]# rsync -vzrtopg --port=873 --progress --delete test@192.168.0.110::rsyncfile /tmp/rsync
这里会提示输入密码:123456
注意:此处的密码为cwRsyncServer服务端G:\rsyncserver\ICW\etc\rsyncd.secrets文件配置的密码
[root@host1 rsync]# pwd /tmp/rsync [root@host1 rsync]# ls 123.txt
4、添加计划任务,每天自动执行数据同步脚本
vi /etc/passwd.txt #配置文件,添加以下内容
123456 #密码
:wq! #保存退出
chmod 600 /etc/passwd.txt #设置文件权限,只设置文件所有者具有读取、写入权限即可
cd /shell
vim rsyncbak.sh #编辑,添加以下内容
#!/bin/sh
rsync -vzrtopg --port=873 --progress --delete test@192.168.0.110::rsyncfile /tmp/rsync --password-file=/etc/passwd.txt
:wq! #保存,退出
chmod +x /shell/rsyncbak.sh #添加脚本直接权限
crontab -e
0 5 * * * sh /shell/rsyncbak.sh > /var/log/rsyncbak.txt 2>&1
设置完成之后,每天凌晨5点,Rsync客户端会自动同步cwRsyncServer服务端G:\rsyncfile目录数据到自己的/tmp/rsync目录中
至此,CentOS客户端与Windows服务端实现数据同步设设置完成
同步报错:
rsync: didn't get server startup line rsync error: error starting client-server protocol (code 5) at main.c(1649) [Receiver=3.1.2]
这个报错排查了一个下午,各种原因都排查一遍,服务端客户端重装也没找到,最后修改rsync服务端的配置文件rsyncd.conf逐步排查,去掉[test]模块的这两行,其余步骤不变,认证成功!
auth users = test secrets file = etc/rsyncd.secrets
相关文章:使用rsync在linux(服务端)与windows(客户端)之间同步
参考文档:http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0819/8524.html