Windows和Linux之间使用Rsync进行数据同步
温馨提示:这篇文章已超过485天没有更新,请注意相关的内容是否还可用!
需求
需要在windows和Linux系统间进行数据同步,这个时候我们可以部署rsync进行数据同步
实验环境
Windows系统:172.18.255.156 (Windows 2008)服务端
Linux系统:172.18.255.155 (Centos7.9)客户端
环境部署
一、服务端安装
https://rsync.samba.org/ Rsync官网
cwRsyncServer_4.0.5_Installer.zip
安装cwRsyncServer_4.0.5_Installer
选择Next ,进入下一步
选择I Agree(同意)
填写安装路径(默认即可,如需修改则修改)
设置用户名和密码(可使用默认,并设置密码。也可以自定义),选择Install (安装)
Close(关闭),安装完成
开始 >> 所有程序 >> 管理工具 >> 服务
找到RsyncSever选项,双击打开
启动类型:自动
点 启动
二、创建同步目录
创建一个存放文件目录,站长这边创建C:\rsync-synchronous(也可以是自己已经有创建的目录,并设置目录添加安装rsync时,设置的帐号添加进来,并设置权限为完全控制)
右击rsync-synchronous目录,右键打开属性 >> 安全,把安装rsync时,设置的帐号添加进来,并设置权限为完全控制
三、修改Rsync配置文件
打开C:\Program Files (x86)\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 # #名称可自定义,如tongbu [tongbu] path = /cygdrive/c/rsync-synchronous read only = false transfer logging = yes auth users = SvcCWRSYNC secrets file = etc/rsyncd.secrets UID = 0 GID = 0
如不设置UID跟GID会报错@ERROR: invalid uid nobody
注意path路径,path = /cygdrive/是固定的,不要改,后面连接的c/rsync-synchronous,则是我们刚才所建的目录路径,站长是建在C盘的,目录为rsync-synchronous。(其他路径则填写其他路径
其它参数详解:
read only = true #客户端只读
list = no#不允许列出文件
hosts allow=192.168.0.141 #允许连接IP,多个IP中间用英文状态下逗号隔,不限制IP填写*即可
auth users =SvcCWRSYNC #允许连接的用户名(前面安装系统创建的那个用户名)
secrets file = etc/rsyncd.secrets #存放用户名密码的认证文件路径
创建rsync同步帐号密码文件
进入:C:\Program Files (x86)\ICW\etc,创建文件:rsyncd.secrets,文件里输入SvcCWRSYNC:前面安装的时候设置的密码,SvcCWRSYNC是同步帐号
至此cwRsyncServer服务端安装设置完成
四、Rsync客户端配置
yum install rsync -y
五、测试Rsync客户端是否与cwRsyncServer服务端通信成功(cwRsyncServer服务端防火墙需要开启tcp 873端口)
yum install telnet -y
telnet 172.18.255.156 873
测试数据同步
# mkdir -p /root/rsync
# rsync -vzrtopg --port=873 --progress --delete SvcCWRSYNC@172.18.255.156::tongbu /root/rsync
这里会提示输入密码设置的密码
注意:此处的密码为cwRsyncServer服务端C:\Program Files (x86)\ICW\etc\rsyncd.secrets文件配置的密码
每次都要输入密码挺麻烦的无法做成任务计划让他自己同步 这个时候我们可以指定密码文件
如把密码文件放在/root/passwd.txt (在文件里面填写密码即可)
chmod 600 /root/passwd.txt #设置文件权限,只设置文件所有者具有读取、写入权限即可
# rsync -vzrtopg --port=873 --progress --delete SvcCWRSYNC@172.18.255.156::tongbu /root/rsync --password-file=/root/passwd.txt
设置定时同步
# vi /root/rsync.sh
#!/bin/sh rsync -vzrtopg --port=873 --progress --delete SvcCWRSYNC@172.18.255.156::tongbu /root/rsync --password-file=/root/passwd.txt
:wq! #保存,退出
chmod +x /root/rsync.sh #添加脚本直接权限
crontab -e 按i进入编辑
0 */1 * * * sh /root/rsync.sh > /root/rsync.log 2>&1
:wq! #保存,退出
设置完成之后,每隔1个小时,Rsync客户端会自动同步cwRsyncServer服务端C:\rsync-synchronous目录数据到自己的/root/rsync目录中
至此,CentOS客户端与Windows服务端实现数据定时同步设置完成