巧用Rsync成功实现多台Windows工作电脑资料同步

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

巧用Rsync成功实现多台Windows工作电脑资料同步
本文将介绍跟距离如何用Rsync windows 版来帮我们好好“改变一下工作,生活。


你可以选择2种配置方法!
1,一台台式电脑,一台笔记本。

2,一台服务器,一台工作站(台式电脑),一台笔记本。

其实2种配置,无非都是要符合Rsync结构里边”服务端”跟”客户端”的资料传输方式。

第一种配置,可以把台式机安装Rsync服务端,而笔记本运行客户端进行资料更新同步。

第二种配置,可以在服务器上安装Rsync服务端,另外的工作站跟笔记本使用客户端进行资料更新。

任何一种方法实现起来都挺好.
但有一点要声明.我还没试过在装有VISTA操作系统的台式机上充当Rsync的服务端. 客户端就很成功.
另外再说一说, 我个人现在用的是第二种配置。

如果有哪位朋友喜欢,而且想应用在生成环境中,例如公司或企业的重要资料备份以及同步. 这样我还是推荐使用专门的服务器+专门的服务器操作系统. 至少是Windows2003server 或者Linux。

如果你有条件有技术的话,Linux 是个最专业的选择哦。

好了,现在入正题。

你要准备的软件有:
最新版Rsync for windows
服务端:cwRsync_Server_2.1.5_Installer.zip
客户端:cwRsync_2.1.5_Installer.zip
还有这个是服务端的最新核心升级包:cwRsync_2.1.5_update_100.zip
Rsync 的server端跟客户端都是一个Windows的exe的安装文件。

选好安装路径,装就是了。

先在服务器或者(台式机)上安装Rsync Server 服务端。

我把安装路径设在了服务器(台式机)的D:/Program Files/cwRsyncServer
Server 端会顺便添加一个SvcwRsync用户,用户密码会在安装过程中自动生成并且告诉你.这个密码难度也挺强的一般是没必要去修改。

而且它还会在系统“服务”里头添加上一个"RsyncServer"默认是手动启动, 你可以把它设置成自动,随服务器启动并运行在后台。

安装升级:很简单,把升级包解压,再吧里边的rsync.exe文件覆盖到安装目录下bin的同名文件即可。

好了,现在来说说配置了!
由于Rsync是从Linux跟Unix上移植过来Windows的。

所以其没有图形界面,一切工作控制都要用配置文件来完成。

我们先来设置Server端的。

如果按上边提到的2种配置选择来说,rsync服务端的配置不管是WinXP还是Win2003都基本是一样的.只是有一些人性化的细节方面我后边会提到.
打开位于D:/Program Files/cwRsyncServer 下的rsyncd.conf
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
#上边这部分不用管, 看下边的.
#刚刚安装完成,下边原本会是个Test,全部删掉!我们自己来添加新的.
[Documents] #同步项目(可自定)
path =/cygdrive/h/Documents/ #文件存放位置
read only = false #允许客户端上传文件,只读关闭
transfer logging = yes #访问询问账号密码
auth users = qbanke #账号qbanke(可以自定)
secrets file = etc/pwd.conf #账号的密码,需自己创建。

#以上的配置是我用于同步工作用的文档
把修改好的rsync.conf 保存
自己在D:/Program Files/cwRsyncServer 下创建一个文件夹etc 并且在里边创建一个名为pwd.conf 的密码明文,格式是。

qbanke:123456
qbanke 是用户账号,冒号后边的是密码.
保存后,如果是win2003系统,就要设置权限把这个文件的所有用户可读权限都删掉。

不然Rsync检测到该文件权限过低就会因安全拒绝连接。

不给你发数据。

还没行!!.要顺利启动,你还需要设置一下用户存放项目的文件夹的权限.
刚才配置的这个path =/cygdrive/h/Documents/ #文件存放位置
意思是从盘(就是除C盘以外) 盘符h (H:/) 下的Documents 整个意思就其实是(h:/Documents) ,当然盘符跟文件夹都可以你自己来建跟修改.
权限设置很重要,决定你Rsync Server与客户端能不能很顺利地取读以及同步数据.
在Win2003下, 要确保在安装过程中自动建立的那个SvcwRsync 用户对该文件夹有完全控制的权限。

因为rsync 在系统中读写数据时用的是这个用户账号。

而WinXP 就有点麻烦了,不能像2003一样单独设置文件夹的权限,所以要巧妙地使用"共享"来实现。

右键点Documents选择属性,共享,完全共享(可读写)。

如果你不想共享后其他电脑通过局域网来查看你共享文件夹的内容,你要再多一步。

到控制面板,管理工具,计算机管理,本地用户和组,隔壁的Guest,右键点击,属性,把账户已停用的沟打上即可。

然后你总算可以在服务里头把rsync启动了。

还要说一点的, rsync 在WinXP中安装的时候也是创建了一个SvcwRsync的用户。

WinXP 跟2003 的区别,就是它默认是使用"欢迎屏幕"登陆的。

当你重启或者注销后,你就会看到账户选择上多了个SvcwRsync。

很碍眼!
咋办?把它跟其他系统账户一样,隐藏掉!!下边是方法:
在Windows XP的欢迎屏幕上,默认情况下会显示除Administrator外的所有本地用户名。

如果您想在欢迎屏幕显示Administrator账户,可以打开注册表编辑器,定位到“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentV ersion/Winlogon/ SpecialAccounts/UserList”,在右侧的窗口中找到以Administrator命名的键(如果没有可以自己建立。

右键,新建,DWORD值),双击,将键值由0改为1,退出后重新启动计算机。

这样,Administrator账户就可以在欢迎屏幕上显示了。

同理,如果您想隐藏某个用户,可以在上面提到的位置新建一个以您想隐藏的用户为名的键,然后把值设置成0,重启机器,这个用户就从欢迎屏幕上隐藏起来了。

-----------------
所以我说, winXP 干数据同步这事还是不专业啊,问题多。

幸好还是能解决掉。

下边就轮到客户端的设置了。

(笔记本或工作站台式机)
客户端的安装我觉得其实就是个解压,解压后任由你往哪里扔都行了。

最重要是它的运行方法,要用批处理命令。

我们把客户端扔在D:/rsync_Kaiser/
在目录下新建一个新建一个文本文档.txt 改名成Documents_bak.bat
在里边添加内容:
d:/rsync_Kaiser/bin/rsync.exe -vrtopg --exclude=desktop.ini --exclude=Desktop.ini --exclude=Thumbs.db --exclude=RECYCLER --progress --password-file=etc/pwd.conf /cygdrive/e/Documents qbanke@192.168.3.3::Documents
#意思是
#执行d:/rsync_Kaiser/bin/rsync.exe
# -vrtopg 这个是运行参数, 可以查看下边的参数列表。

# -exclude=desktop.ini --exclude=Desktop.ini --exclude=Thumbs.db --exclude=RECYCLER 这些也是运行参数, 意思是把=号后边的文件屏蔽掉,不做同步.
# --progress 在程序执行的时候屏幕窗口上显示详细的运作信息,例如整在同步那个文件,速度多少。

# -password-file=etc/pwd.conf 跟服务器端一样,指定密码文件的路径,以便在自动运行的时候不用手动来输入.
# /cygdrive/e/Documents qbanke@192.168.3.3::Documents本地文件夹e:/ 盘上Documents 所有的内容(路径自己根据不情况进行修改)将和服务端ip地址192.168.3.3 的Documents 存储目录同步。

然后也要跟服务端一样,在当然目录新建一个etc 文件夹再新建一个名为pwd.conf 的文本文件.
但里边的内容只需单独填写跟服务器里头配置文件相对应的密码即可,不用填用户名. 123456
保存,设置权限!.XP上什么都不用动. 但如果你的操作系统是VISTA商业版,或者Ultra 版, 就要好像Win2003一样,把改文件的所有可访问用户都干掉.
好,说到这里.希望你是一位技术不赖的网管,能把上边的都能集合自己的经验看明白吧.
服务端跟客户端的配置都完成了,可以试试执行。

如果出现任何错,最大一个可能第一是权限没弄好,目录的,密码文件的。

第二就是配置有误,客户端的没跟服务器的对应好,账号或者存储目录名。

现在客户端所配置的选项是单向的数据上传同步。

意思是检测服务端跟客户端文件的差异,再决定要上传,更新服务器哪些文件。

如果客户端存在比服务器多的文件,即上传。

如果客户端存在比服务器要新的文件,即覆盖。

如果客户端的文件相比服务器的要缺少,即跳过。

(不跳过也行!你可以在客户端参数中-vrtopg的后边加入--delete 来实现同步删除.慎用!!) 对了!还要说一说!.要注意路径的斜杠。

很重要!!!
/cygdrive/e/Documents/ qbanke@192.168.3.3::Documents
这个写法, 会吧e:/ 盘下Documents所有文件都同步到服务器Documents 当前目录下边
/cygdrive/e/Documents qbanke@192.168.3.3::Documents
这个Documents后少了个斜杠!, 就会把e:/ 盘下Documents 同步到服务器Documents 当前目录下边Documents的文件夹内。

就是说他会再建一个文件夹。

我的做法是, 在客户端执行的bat程序中定制2行命令。

一行是上边那个用于上传的。

一行是下边这个用户下载的。

这样就能让客户端也能及时更新到服务器上新修改或者创建的文件了。

d:/rsync_Kaiser/bin/rsync.exe -vrtopg --exclude=desktop.ini --exclude=Desktop.ini --exclude=Thumbs.db --exclude=RECYCLER --progress --password-file=etc/pwd.conf qbanke@192.168.3.3::Documents/ /cygdrive/e/Documents
其实就仅仅把上传命令的最后2段反了过来。

再改了一下斜杠的位置。

客户端下载的规则其实是跟上传一样的,就是一个对上,一个对下。

检测服务器里边那些文件跟本地的大小跟创建时间有差异,选择新的那个覆盖客户端旧文件。

上传跟下载2行命令+起来,即可完成完整的数据同步任务。

即:
A笔记本今天工作完成,把新文件上传至服务器。

并检测服务器上有没新的文件更新。

有就下载。

B工作站(或者台式机)打开,获取来自服务器端的新文件,并且检测本地有没新的文件更新,有就上传。

B工作站对文件做进一步修改,完成后再次运行同步程序,回传到服务器(如果是第一种方案的话就不用了)。

A笔记本运行同步程序,把工作站最新修改的文件以及最新上传的文件一并同步到本地。

怎样?你还可以把同步的.bat程序发送快捷方式到桌面.并改一个好看的图标.
每天工作完成下班回家,笔记本接入家里的局域网后,就用鼠标点一下~!同步自动检测并自动运行.
你可以去睡一下,煮饭,看电视什么的.不用再在电脑上再折腾多几十分钟去整理了.
Rsync 的服务端配置里头的储存目录不止写一个的,还可以添加多个存放不同的文件夹或者不同的硬盘.
像我的就是:
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
[Documents]
path =/cygdrive/h/Documents/
read only = false
transfer logging = yes
auth users = qbanke
secrets file = etc/pwd.conf
# 工作用文档
[photo]
path=/cygdrive/h/photo/
read only=false
transfer logging=yes
auth users = qbanke
secrets file = etc/pwd.conf
# 存放摄影作品的文件夹
[soft]
path=/cygdrive/h/Soft/
read only=false
transfer logging=yes
auth users = qbanke
secrets file = etc/pwd.conf
# 存放软件的文件夹
另外我的邮箱是[url=mailto:qbanke@]qbanke@[/url] 如果遇到问题可以发邮件来问我.
以下附上rsync客户端命令参数详解
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。

可以使用--suffix选项来指定不同的备份文件前缀。

--backup-dir 将备份文件(如~filename)存放在在目录下。

-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。

(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PA TH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于--partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PA TTERN 指定排除不需要传输的文件模式
--include=PA TTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formA T 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息
Rsync/cwRsync
在windows与windows服务器之间的同步设置
一、windows与windows同步
1.准备两台机器:
server-----192.168.0.201
client-----192.168.0.202
2.下载windows版的rsync工具
/sourceforge/sereds
3.安装与配置
SERVER:
(1)安装cwRsync_Server_2.0.10_Installer.zip
在开始程序中打开“start a unix bash shell”程序:
进入一个类似cmd的终端,输入如下命令:
$/bin/activate-user.sh
输入l
输入administrator
后面全按回来结束
(2)启动opensshd
打开“控制面板”-->“管理工具”-->“服务”:
找到一个opensshd的服务,启动它
(3)配置rsyncd.conf配置文件
编辑C:/Program Files/cwRsyncServer/rsyncd.conf,内容如下:
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
# Module definitions
# Remember cygwin naming conventions : c:/work becomes /cygwin/c/work
[rsync]
path = /cygdrive/f/rsync (此处路径代表f:/rsync目录)
read only = yes
transfer logging = yes
secrets file = /cygdrive/f/rsyncd.secrets
(4)启动rsync服务
打开“控制面板”-->“管理工具”-->“服务”:
找到一个RsyncServer的服务,启动它
到此server端配置结束,接下来配置client端。

CLIENT:
(1)安装client端软件包:cwRsync_2.0.10_Installer.zip
(2)打开cmd,执行如下操作,测试服务端是否正常启动服务了:
cd C:/Program Files/cwRsync/bin
telnet 192.168.0.201 22
telnet 192.168.0.201 873
若上述测试成功,此时可执行同步计划:
rsync -vzrtopg --progress --delete 192.168.0.201::rsync /cygdrive/d/test
或者是:
rsync -vzrtopg --progress --delete 192.168.0.201:/cygdrive/d/rsync /cygdrive/d/test
(此时,会提示输入密码,用户名为administrator,密码则为192.168.0.201的管理员登录密码)
至此,安装配置windows到windows间的同步已经OK
如果定时同步server上的文件,可将其加入任务计划中。

二、windows作为server时与linux间的同步
1、准备机器,此时使用windows作为server
server---192.168.0.201 (windows)
client---192.168.0.132 (linux)
2、经过上文的操作,此时可简化操作了
进入linux主机client同步server:
#rsync -vzrtopg --progress --delete 192.168.0.201::rsync /test
三、linux作为server时与windows间的同步
1、准备机器,此时使用linux作为server
server---192.168.0.132 (linux)
client---192.168.0.202 (windows)
2、安装与配置linux主机的rsync
(1)查看linux上是否安装rsync:
#rpm -qa|grep rsync
若无则安装,或者使用tar编译安装
#rpm -ivh rsync-2.6.8-3.1.rpm
(2)打开rsync服务
#chkconfig xinetd on
#chkconfig rsync on
(3)创建rsyncd.conf 文件
#touch /etc/rsyncd.conf
#vi /etc/rsyncd.conf(内容如下:)
uid = nobody
gid = nobody
max connections = 4
[www]
path = /www
comment = BACKUP WWW
ignore errors
read only = yes
list = no
auth users = wwwuser
hosts allow=192.168.0.202
secrets file = /etc/wwwuser.pass
(4)启动基于xinetd进程的rsync服务
#/etc/init.d/xinetd start
3、配置windows的rsync客户端
(1)安装client端的rsync包
(2)打开cmd,执行同步计划:
cd C:/Program Files/cwRsync/bin
rsync -vzrtopg --progress --delete [email]root@192.168.0.132[/email]::www /cygdrive/d/test (此时须输入root用户的密码,就可进行同步了。

)
至此,全部配置完成。

注:
要使用加密的同步,可使用……
rsync -e 'ssh -p 2002' -vzrtopg --progress --delete [email]root@192.168.0.132[/email]::www /cygdrive/d/test
命令示例:
+++++++++++++++++++++++++++++++++++++++++++
rsync -vzrtopg --delete --exclude "count/" --exclude "welcome.html" --progress 192.168.0.1::imdac /cygdrive/d/imdac
命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。

--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

--exclude "count/" 表示不对count目录下的文件进行备份。

--exclude "welcome.html" 表示不对welcome.html文件进行备份。

+++++++++++++++++++++++++++++++++++++++++++
其他教程
1. 特性简介
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。

它的特性如下:
1、可以镜像保存整个目录树和文件系统。

2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。

3、无须特殊权限即可安装。

4、优化的流程,文件传输效率高。

5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

6、支持匿名传输。

2.安装
1.环境:
软件平台:windows2003
软件版本:cwRsync_2.0.10_Installer cwRsync_Server_2.0.10_Installer
硬件平台:dell2950 cpu1.6G*4 内存:4G 硬盘:1G*6 RAID5
2.安装
在WINDOWS环境下安装rsync要安装服务端和客户端
服务器端安装:运行cwRsync_Server_2.0.10_Installe
客户端安装:运行cwRsync _2.0.10_Installe
安装步骤和安装服务器端是一样的这里就不详细描述
3. 配置
配置和我们在linux下面的配置一样,在安装目录中找到rsync.conf文件进行配置:Rsync.conf文件:
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
uid = administrator
gid = administrator
use chroot = no
max connections =4
syslog facility = local5
[test]
path =/cygdrive/d/wlk
comment=/cygdrive/d/wlk comment = BACKUP CLIENT IS SOLARIS 8 E250
ignore errors # 可以忽略一些无关的IO错误
read only = yes # 只读
list = no # 不允许列文件
auth users = inburst # 认证的用户名,如果没有这行,则表明是匿名
secrets file = etc/inburst.pas # 认证文件名
在server端生成一个密码文件etc/inburst.pas
打开记事本
inburst:hack
保存在安装路径下面的etc文件加下面文件明保存为inburst.pas
在服务中把RsyncServer启动,启动类型修改为自动
这样服务器端就安装设置好了
从client端进行测试
下面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。

--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

后面的inburst@ip中,inburst是指定密码文件中的用户名,之后的::inburst这一inburst 是模块名,也就是在/etc/rsyncd.conf中自定义的名称。

最后的/tmp是备份到本地的目录名。

在这里面,还可以用-e ssh的参数建立起加密的连接。

可以用--password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

在客户端运行CMD
rsync -av 10.0.0.16::401 /cygdrive/h/401
4. FAQ
Q:如何通过ssh进行rsync,而且无须输入密码?
A:可以通过以下几个步骤
1. 通过ssh-keygen在server A上建立SSH keys,不要指定密码,你会在~/.ssh下看到identity和identity.pub文件
2. 在server B上的home目录建立子目录.ssh
3. 将A的identity.pub拷贝到server B上
4. 将identity.pub加到~[user b]/.ssh/authorized_keys
5. 于是server A上的A用户,可通过下面命令以用户B ssh到server B上了
e.g. ssh -l userB serverB
这样就使server A上的用户A就可以ssh以用户B的身份无需密码登陆到server B上了。

Q:如何通过在不危害安全的情况下通过防火墙使用rsync?
A:解答如下:
这通常有两种情况,一种是服务器在防火墙内,一种是服务器在防火墙外。

无论哪种情况,通常还是使用ssh,这时最好新建一个备份用户,并且配置sshd仅允许这个用户通过RSA认证方式进入。

如果服务器在防火墙内,则最好限定客户端的IP地址,拒绝其它所有连接。

如果客户机在防火墙内,则可以简单允许防火墙打开TCP端口22的ssh外发连接就ok 了。

Q:我能将更改过或者删除的文件也备份上来吗?
A:当然可以:
你可以使用如:rsync -other -options -backupdir = ./backup-2000-2-13 ...这样的命令来实现。

这样如果源文件:/path/to/some/file.c改变了,那么旧的文件就会被移到./backup-2000-2-13/path/to/some/file.c,
这里这个目录需要自己
手工建立起来
Q:我需要在防火墙上开放哪些端口以适应rsync?
A:视情况而定
rsync可以直接通过873端口的tcp连接传文件,也可以通过22端口的ssh来进行文件传递,但你也可以通过下列命令改变它的端口:
rsync --port 8730 otherhost:: 或者rsync -e ssh -p 2002 otherhost:
Q:我如何通过rsync只复制目录结构,忽略掉文件呢?
A:rsync -av --include */ --exclude * source-dir dest-dir
Q:为什么我总会出现"Read-only file system"的错误呢?
A:看看是否忘了设"read only = no"了
Q:为什么我会出现@ERROR: invalid gid的错误呢?
A:rsync使用时默认是用uid=nobody;gid=nobody来运行的,如果你的系统不存在nobody 组的话,就会出现这样的错误,可以试试gid = nogroup或者其它
Q:绑定端口873失败是怎么回事?
A:如果你不是以root权限运行这一守护进程的话,因为1024端口以下是特权端口,会出现这样的错误。

你可以用--port参数来改变。

Q:为什么我认证失败?
A:从你的命令行看来:
你用的是:
> bash$ rsync -a 144.16.251.213::test test
> Password:
> @ERROR: auth failed on module test
> I dont understand this. Can somebody explain as to how to acomplish this.
> All suggestions are welcome.
应该是没有以你的用户名登陆导致的问题,试试rsync -a max@144.16.251.213::test test
Windows服务器定期备份网站rsync 服务器同步有时候我们会遇到被人黑或是网站程序出现错误,被挂木马之类的,丢失数据库啦,我想这都不是我们想得到的结果,现在来介绍下一款软件cwRsync可以智能的备份数据库哦。

linux下有sync,windows下也有类似的软件,就是cwRsync,此软件分为服务器端/客户端。

目前能找到的最新的版本是3.0.1。

下载地址:/projects/sereds/files/
1、cwRsync安装
安装的过程很简单,安装server 就可以了,server 包括了client 的功能。

安装完server 后,会在service 中增加Rsync 和ssh 服务,进入服务管理,设置为自动启动。

安装成功后,要备分的文件目录必须加上SvcwRsync 这个用户可读权限。

2、cwRsync服务器端配置
进入cwRsync安装目录,配置rsyncd.conf 如下。

程序代码:
port = 873 #默认端口是873,做了端口限制的要开启cwRsync所使用的端口。

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log #LOG
pid file = rsyncd.pid
secrets file = password # 这里指定了用户名密码文件在其安装目录里,名字叫password,其内容是txt编辑为54rk: 前面是用户名,后面是密码
# Module definitions
# Remember cygwin naming conventions :c:\work becomes /cygwin/c/work
#
[webbackup]
path = /cygdrive/d/web/ #注意格式,这说明是D盘WEB目录下的目录,这是web目录
read only = true #只读
list = no
auth users = 54rk #指定用户名
transfer logging = no #是否记录详细的传输情况
[data]
path = /cygdrive/d/web/sql_back #这是数据库备分目录
read only = true
list = no
auth users = 4899
transfer logging = no
3、cwRsync自动数据同步
因为只是最简单的数据同步,所以就不使用ssh 了,直接启动rsync 服务就可以了。

在客户机上安装cwRsync,SvcwRsync 这个用户需要可以写入你指定的备分目录的权限,还要有读密码文件的权限。

然后新建一个BA T 文件,data.bat,内容如下:程序代码:
rsync -vzrtopg --progress --delete --password-file=/cygdrive/e/password2 54rk@ip::data /cygdrive/e/web1/sql_back
注意看:password-file,你要在指定的目录下定义一个password2 文件,只要写54rk这个用户名对应的密码就可以。

我这里是E盘根目录下的password2。

4、cwRsync定期同步数据
在windows控制面板里,点计划任务,选中我们新建的data.bat,按需要设置自动运行。

目前是设置为每天凌晨3点同步数据。

后记:这里配置的cwRsync是完全同步的,主站内容增加或删减,在cwRsync同步时,
同样增加或删减,所以每次同步时搜索文件时间会比较长。

新手常出现的错误:
错误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) [rec
eiver=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) [rec
eiver=3.0.2]
解决:配置文件rsync.conf中添加lock file = rsyncd.lock 即可解决。

相关文档
最新文档