cwRsync分为客户端和服务端,服务端为文件被同不端,会起一个端口默认为873;客户端为要把文件主动同步到本机的一端,不会启动端口,当进行文件同步的时候,会主动连接服务端的873端口。拓扑图大概如下:
安装程序展示:
安装:
安装服务器端:
下早Server端,上传到服务器上,解压后安装步骤如下:
<a href="https://s1.51cto.com/wyfs02/M01/99/5E/wKiom1lHmUyC0h07AAArs3c2Hu0353.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M01/99/5E/wKioL1lHmU2Sb1pMAAApzL_nII8433.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M01/99/5E/wKiom1lHmU2Ap4hRAAAjX4Yo4uw776.png" target="_blank"></a>
这里的用户名和密码可以手动自己设置,也可以默认的。据说这个账户和密码比较重要,但是在我后面的应用,并没有用到。网络上,如果更改了账户密码,要在服务中把账户和密码改了,不然启动不起来的。
<a href="https://s4.51cto.com/wyfs02/M01/99/5E/wKioL1lHmU6ynRgEAAAomGuvw1I019.png" target="_blank"></a>
安装过程
<a href="https://s4.51cto.com/wyfs02/M02/99/5E/wKiom1lHmU-SGnbVAABHW1Lpg7Y371.png" target="_blank"></a>
安装完成,点击close
<a href="https://s4.51cto.com/wyfs02/M02/99/5E/wKiom1lHmU-iAyeGAAAa5mi-yEA941.png" target="_blank"></a>
安装完成后,在安装目录下有一个rsync.conf的文件,cp一份这个文件作为备份,然后修改配置文件。
文件内容如下:
这里要说一点,在path路径的设置上,如果想表示c:\a\b\c目录,那么写的方式是/cygwin/c/a/b/c
为了安全我这里同步设置的帐号和密码,auth users = xinsir,表示同步使用xinsir帐号进行同步;
sercets file = xxxxxx/rsync.passwd这个指定的用户密码文件路径,密码文件内容:“帐号:密码”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>use chroot = false</code>
<code>strict modes = false</code>
<code>hosts allow = *</code>
<code>log file = rsyncd.log</code>
<code>pid file = rsyncd.pid </code>
<code>port = 8173</code>
<code>uid = 0</code>
<code>gid = 0</code>
<code>max connections = 10</code>
<code># Module definitions</code>
<code># Remember cygwin naming conventions : c:\work becomes /cygwin/c/work</code>
<code>#</code>
<code>[config]</code>
<code>path = /cygdrive/d/autoBackup</code>
<code>read only = false</code>
<code>transfer logging = yes</code>
<code>lock file = rsyncd.lock</code>
<code>auth users = xinsir</code>
<code>secrets file = /cygdrive/e/pass/rsync.passwd</code>
修改完配置文件后,需要重启sync的服务,去到计算机--管理--服务里面进行重启服务即可。
安装客户端:
客户端安装首先下载安装程序后,所有的安装步骤默认即可,安装完成后会在目录下生成如下文件:
<a href="https://s1.51cto.com/wyfs02/M01/99/5E/wKioL1lHnKnSVM_GAAA7TG0HdbM607.png" target="_blank"></a>
进行同步测试:
编写同步批处理文件,文件内容如下:
服务器端没有设置密码的这样写:
<code>@</code><code>echo</code> <code>off </code><code>#没有密码</code>
<code>set</code> <code>RSYNC_HOME=c:\Program Files\cwRsync\bin</code>
<code>cd</code> <code>%RSYNC_HOME%</code>
<code>rsync</code> <code>-av </code><code>rsync</code><code>:</code><code>//192</code><code>.168.2.242</code><code>/test</code> <code>/cygdrive/e/test</code>
服务器端有设置密码的这样写:
<code>@</code><code>echo</code> <code>off </code><code>#需要密码</code>
<code>rsync</code> <code>-avzP --progress --delete --password-</code><code>file</code><code>=</code><code>/cygdrive/c/pass/rsync</code><code>.</code><code>passwd</code> <code>[email protected]::</code><code>test</code> <code>/cygdrive/e/test</code>
意思是将192.168.2.242的服务端下的test模块下的e:\bak目录同步到客户端的e:\test下
参数介绍:
-avzP
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度
-v verbose,详细模式输出
-u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步
--progress
显示备份过程
--delete
删除那些DST中SRC没有的文件
--password-file
指定密码文件,只需包含密码而不用包含用户名
[email protected]::test
SvcCWRSYNC 登陆服务器端的用户名
192.168.2.242 服务器端的ip地址
test 服务器端指定的认证模块名,多个同步作业靠此模块名区分
/cygdrive/e/test
存放服务器端同步文件的本地目录
注意:
生成密码文件比较重要,如果使用xinsir帐号进行同步,那么在客户端的机器上创建一个xinsir的账户,用xinsir登录主机后,创建一个sync.passwd的文件,文件里面只写密码其余的什么都不写,右键这个文件选择属性中的安全选项卡中的高级中的所有者,严重所有者是否为xinsir,如果不是请更改,如果则完成。如下图:
<a href="https://s5.51cto.com/wyfs02/M02/99/5F/wKiom1lHoCqwwqhBAAAiZA8AuoM703.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M02/99/5F/wKioL1lHoCrC7I7AAAAho6F6xu4777.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/99/5F/wKiom1lHoCuhFAGvAAAjSQZaWsI875.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M00/99/5F/wKioL1lHoCuCJWgNAAAuJsWzolI510.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/99/5F/wKiom1lHoCuS3apUAAAk4n6srL8997.png" target="_blank"></a>
双击写好的批处理,验证文件能成功同步!
本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/1939962,如需转载请自行联系原作者