在Windows中配置Rsync同步文件的方法_win服务器

Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及解压缩操作,减少带宽流量。支持scp、ssh及直接socket方式连接,支持匿名传输。支持Linux,Window平台。写本文的时候,window版最新版为4.0.5版

官网:http://rsync.samba.org/

Linux版下载:http://rsync.samba.org/download.html

Windows版下载:https://www.itefix.no/i2/cwrsync-get 选(Free Edition 免费版)

客户端:cwRsync 4.0.5 Installer

服务端:cwRsyncServer 4.0.5 Installer

  • cwRsync win 服务器同步软件 cwRsync_2.1.5_Installer.zip
  • 服务器数据同步 服务器端 cwRsync_Server_2.1.5_Installer.zip
  • 服务器文件同步 cwRsync_3.1.0_Installer.zip
  • 服务器文件同步软件 服务器端 cwRsyncServer_3.1.0_Installer.zip

一、安装配置 Rsync 服务端

Window版服务端:

1. 点击服务端安装程序进行安装,安装过程中提示输入服务端程序以服务运行时的用户名,密码。可以自定义,也可以用默认的用户名密码设置。

2. 安装完成之后,进入程序安装目录根目录,打开配置文件(如:C:\Program Files\ICW\rsyncd.conf ),进入配置。

复制代码 代码如下:

use chroot = false
strict modes = false
lock file = rsyncd.lock
hosts allow = 192.168.1.21
max connections = 5
port = 28950
pid = 0
uid = 0

log file = /cygdrive/f/RsyncLog/rsyncd.log

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygdrive/c/work

[data_backup]
path = /cygdrive/f/dataBackup
auth users = dbbackuper
secrets file = /cygdrive/e/Setting/Rsync/rsync_db.ps
read only = no
list = no
transfer logging = yes

用的

复制代码 代码如下:

use chroot = false
strict modes = false
hosts allow = 222.186.55.55
log file = rsyncd.log
pid file = rsyncd.pid

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[dddown]
path = /cygdrive/d/webroot/downjb51
read only = false
transfer logging = yes
auto user=wtjb51
secrets file=wtjb51.conf

[scjb51]
path = /cygdrive/d/webroot/scjb51
read only = false
transfer logging = yes
auto user=wtjb51
secrets file=wtjb51.conf

以上Windows目录的写法,应该按照POSIX风格来写,默认配置文件的写法cygwin貌似不工作,而要写成cygdrive,如D:/data,要写成/cygdrive/d/data。

以上配置只允许192.168.1.21访问,这里按需修改。

strict modes = false 不验证用户密码,

pid = 0,uid = 0指定匿名访问。

auth users : 指访问data_backup的用户名

secrets file : data_backup用户名对应的密码文件。

 

3. 新建密码文件:E:\Setting\Rsync\rsync_db.ps 。如:

root:root

admin:12345

密码文件格式:用户名:密码(root:12345),一行一个,有的系统不支持长密码,另个密码文件的权限对其它用户组是不可读的,设置错了可能不工作。在Windows下,密码文件的访问权限一定要设置正确,不然用户验证的时候通不过。应将密码文件E:\Setting\Rsync\rsync_db.ps的权限加入Rsycn服务运行服务的用户名 cwRsyncServer 的读取权限 及 设置其为该文件为所有者。

 

4. 在服务管理器中,找到服务 RsyncServer 服务,并启动服务。

5. 如果开启了防火墙,则防火墙规则中要添加Tcp端口 28950 允许通信。

6. 服务验证,打开dos命令框,输入telnet 192.168.1.20 28950 (如果没有安装telnet服务端与客户端,请在控制面板->添加删除程序->打开关闭windows功能中找到Telnet客户端和服务端,勾选进行安装)。如果telnet能成功连接,出现@RSYNCD: 30.0 等类似文字,则说明服务启动正常。

 

二、安装配置 Rsync 客户端

1. 安装Rsync客户端程序,直至安装完成。

2. 测试服务器Rsync的连通性。在Rsync客户端所在计算机telnet Rsync服务端所在计算的相应地址和端口 

telnet 192.168.1.20 28950

出现@RSYNCD: 30.0 等类似文字,则说明客户端连接服务端正常。

 

3. 打开Dos命令窗口,进到Rsync客户端安装目录的bin目录下,如:C:\Program Files\cwRsync\bin\。输入以下命令,开始进行同步:

cd C:\Program Files\cwRsync\bin\rsync --port=28950 -vzrtopg --progress --delete 192.168.1.20::data_backup /cygwin/f/dataBackup --password-file=/cygdrive/e/Setting/Rsync/rsync_db.ps 

 

参数说明:

--port=28950 # 端口-vzrtopg --progress # 显示同步过程详细信息--delete # 从客户端目录中删除与服务端目录中不同的数据,保证两边数据完全一致/cygwin/f/dataBackup # Window下目录F:\dataBackupdata_backup # 服务端配置文件rsyncd.conf文件中定义的模块名称192.168.1.20 # Rsync服务端IP地址

设置该命令文件的用户需要添加密码文件的读取权限及加其为文件所有者。如下:

 

 4. 添加系统计划定期执行

 新建命令执行文件C:\Program Files\cwRsync\bin\SyncDB_NoAuth.cmd。将以下命令保存到该文件中:

rsync --port=28950 -vzrtopg --progress --delete 192.168.1.20::data_backup /cygwin/f/dataBackup --password-file=/cygdrive/e/Setting/Rsync/rsync_db.ps 

 

在Window中添加任务计划,不同的系统,操作有点不一样。

windows xp/Server 2003 : 开始->设置->控制面板->任务计划->打开添加任务计划->下一步

windows 7/Server 2008 : 开始-> 控制面板 -> 管理工具 -> 任务计划

 

 

 

 

三、配置项解析

 

 

四、安装配置中常见问题

 

错误1: rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receive r=3.0.2]
解决:很大可能是服务器端没有开启 rsync 服务。开启服务。

错误2:@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解决:服务器端同步目录没有权限,cwrsync默认用户是Svcwrsync。为同步目录添加用户Svcwrsync权限。

错误3:@ERROR: failed to open lock file
rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2]
解决:配置文件 rsync.conf中添加 lock file = rsyncd.lock 即可解决。

 

错误4: rsync: could not open password file "/cygwin/e/Setting/Rsync/rsync_db.pwd": No such file or directory (2)

解决:密码文件的目录一定要存在,而且要用POSIX风格的写法:/cygdrive/e/Setting/Rsync/rsync_db.pwd

 

错误5:@ERROR: auth failed on module data_backup rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]

解决:密码错误,输入正确的密码即可。用户名和密码如果都正确,可能是远程rsync服务器的帐户密码文件的权限必须为600。

 

错误6: password file must not be other-accessible

解决:这是因为rsyncd.pwd rsyncd.sec的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd, Windows下应将密码文件的所有者改成程序运行的用户。

 

错误7:@ERROR: invalid uid nobody . rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
解决:在rsyncd.conf文件中添加下面两行即可
uid = 0
gid = 0 

 

问题8: @ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服务器端的目录不存在或无权限。创建目录并修正权限可解决问题。

 

问题9:@ERROR: Unknown module ‘tee_nonexists'
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。

 

问题10:rsync: failed to connect to 218.107.243.2: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
原因:对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp的873或者指定的rsync端口打开。

 

问题11:rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
原因:/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。

 

问题12:rsync: chown "" failed: Invalid argument (22)
原因:权限无法复制。去掉同步权限的参数即可。(这种情况多见于Linux向Windows的时候)

 

问题13:@ERROR: daemon security issue -- contact admin
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
原因:同步的目录里面有软连接文件,需要服务器端的/etc/rsyncd.conf打开use chroot = yes。掠过软连接文件。

问题14:rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.2]
解决:很大可能是服务器端没有开启 rsync 服务,开启服务。

 rsyncserver 服务启动时报错“rsyncserver服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的,例如“性能日志和警报”服务。”

解决方法:将安装目录下的rsyncd.pid文件删除,再重新启动RsyncServer服务。一般是异常关机导致的。

复制代码 代码如下:

@echo off
for /f "usebackq" %%i in (`"tasklist|find /c "cygrunsrv.exe""`) do (
set chkstat=%%i
)
if %chkstat% == 0 (
del "D:\Program Files\cwRsyncServer\rsyncd.pid" /f
net start RsyncServer
echo ================ >> %date:~0,10%.log
echo %date% %time% check rsync service stop >> rsync%date:~0,10%.log
echo restart rsync service! >> %date:~0,10%.log
echo ================ >> %date:~0,10%.log
)

时间: 2024-12-29 04:19:23

在Windows中配置Rsync同步文件的方法_win服务器的相关文章

windows下mysql双向同步备份实现方法_win服务器

1.1 环境搭建 准备两台Windows NT 主机,分别安装好iKEY Server windows 版本,确定版本无误,确保mysql服务正常启动,确保两台主机处于同一个局域网中,确定好哪台做为主.备机器,假设A为主机,B为备机,假设A主机IP地址为:192.168.1.101,B主机IP地址为192.168.1.102 1.2 创建同步帐户 分别在A.B节点上登陆mysql 数据库,创建同步帐户并赋予同步权限,如下: A节点操作: 运行cmd, cd进入iKEY版本安装目录下的iKEY\m

Windows 8 IIS中配置PHP运行环境的方法_win服务器

在Windows 8 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 1.进入控制面板>>程序和功能>>打开或关闭Windows 功能,找到Internet信息服务,记得选中CGI这一项 2.安装完成后在浏览器中打开localhost,查看是否能显示IIS的欢迎页面: 二:下载安装配置PHP环境 1.下载PHP,官网地址:http://windows.php.net/download/, 2.将下载的zip压缩包解压到D盘下,解压后为E:\php; 3.进入控制面板

Windows IIS配置Jsp和php环境方法_win服务器

一.IIS用于ASP程序的处理,但是想要它可以处理JSP和php呢?最容易想到的就是JSP安装TOMCAT就好了,TOMCAT默认的端口是8080,默认安装好后的成功页面:http://127.0.0.1:8080/index.jsp;php用Apache就好了,配置好了就可以了.有集成了Mysql和MysqlAdmin的AppServ.Apache和IIS都是默认用80端口,那它们就有冲突,只能启动其中一个,也就是支持php就不支持asp了.对于jsp有人把它和IIS整合,也有人和Apache

PHP中实现生成静态文件的方法缓解服务器压力

 使用生成静态文件的方法解决服务器与数据库访问压力,下面有个不错的教程,感兴趣的朋友可以参考下 互联网快速普及的现在社会,越来越多的人会在一个web应用上进行交流,因而导致服务器与数据库访问压力与日俱增,这边就需要进行一些优化,譬如增加缓存.二级缓存.动态网页静态化以及其他的高端技术.    此处作者是使用生成静态文件的方法:  代码如下: /**  * @desc 生成静态文件时使用  * @todo htmlcache  * @param $root string html文件存放路径  *

探析Windows下将gvim8配置为Python IDE的方法_win服务器

Windows下将gvim8配置为Python IDE大概分为以下四步,每步介绍的都非常详细,一起看看吧. 1.准备工作 将下面的安装包或者文件下载好 1) Python 2.7  http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi 2) gvim8.0   http://www.vim.org/download.php 3) Exuberant Ctags http://ctags.sourceforge.net/ 4) Taglis

win2008中设置计划任务执行PHP文件的方法_win服务器

在网上找了些WINDOWS执行PHP的计划任务的方法,有一个写得很全,可惜在我这竟然没通过.最后不得不综合各门派的方法,才能在我这运行成功1.写一个PHP程序,命名为test.php,内容如下所示: 代码如下: <? $fp = fopen("test.txt", "a+"); fwrite($fp, date("Y-m-d H:i:s") . " PiaoYun.CC成功了!\n"); fclose($fp); ?&g

无需密码通过ssh执行rsync来同步文件的方法_服务器其它

1.通过ssh执行rsync(需要密码) 通过ssh帐户(需要密码)执行rsync,将文件同步镜像到远程服务器. 下面这个例子将本地的/home/ramesh同步到远程目录/backup/ramesh(服务器地址192.168.200.10). 执行以下操作时,服务器将会提示需要用户使用密码登录. 复制代码 代码如下: rsync -avz -e ssh /home/ramesh/ ramesh@192.168.200.10:/backup/ramesh/ 2.使用ssh-keygen生成密匙

rsync 只同步目录结构不同步文件的方法_服务器其它

If you are using an older rsync version, try: 复制代码 代码如下: rsync -av --include='*/' --exclude='*' /path/to/src /path/to/dest/ rsync -av --include='*/' --exclude='*' /path/to/apache/logs/ root@www433.nixcraft.net.in:/path/to/apache/logs/ # cd /var/log/a

Windows中利用计划任务实现自动备份文件_win服务器

我们来利用windows系统的计划任务来实现数据库的备份,1,是文件夹copy到固定的文件夹,2.是把文件夹copy以当天日期的自动生成的文件夹: 1:我们公司要做一个"统计每天下线影片"的应用,我先把这个功能做成一个WinForm程序,生成一个exe文件 2:"开始->程序->附件->系统工具"中找到它,打开"计划任务"窗口 3:双击"添加已计划的任务"项,启动"计划任务向导" 4:选择