使用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:123456test是同步帐号,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

posted on 2018-03-26 18:00  Alan丶文  阅读(16463)  评论(2编辑  收藏  举报