天天看点

windows下rsync服务端与客户端的数据同步

一、软件

服务器端与客户端软件分别为cwRsyncServer_4.2.0和cwRsync4.2.0

二、环境介绍

server端系统为win 2003,其IP为10.240.210.88;客户端端为winXP SP3,其IP为10.240.210.206

三、安装

分别在服务端与客户端安装对应版本的软件,默认安装即可。我这里服务端的安装路径为:E:\Program Files\ICW,客户端安装路径为

四、配置

服务器端

1)进入安装目录所在的根目录,编辑配置rsyncd.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<code>use chroot = false</code>

<code>strict modes = false</code>

<code>hosts allow = *   #允许任意IP</code>

<code>lock file = rsyncd.lock </code>

<code>max connections = 5</code>

<code>port = 28950   #指定端口号</code>

<code>charset=UTF-8  #指定字符集</code>

<code>#pid = 0</code>

<code>uid = 0    #运行rsync守护进程的用户 0为不限制</code>

<code>gid = 0    #运行rsync守护进程的组   0为不限制</code>

<code>log file = rsyncd.log  #日志文件存放位置</code>

<code># Module definitions</code>

<code># Remember cygwin naming conventions : c:\work becomes /cygwin/c/work</code>

<code>#</code>

<code>#[test]</code>

<code>#path = /cygdrive/c/work</code>

<code>#read only = false</code>

<code>#transfer logging = yes</code>

<code>[data]</code>

<code>path = /cygdrive/e/backup   #待备份的目录</code>

<code>auth users =user            #指定授权用户名</code>

<code>secrets file = etc/rsyncd.secrets  #指定密码存储文件</code>

<code>read only = no         </code>

<code>transfer logging = yes</code>

<code>hosts allow = 10.240.210.206      #只允许10.240.210.206</code>

密码文件rsyncd.secrets 

存放在安装目录下的名为etc的文件夹中。

其内容为: user:!@#qwe       

格式为用户名:密码

需将其权限设置为600,即其他组没有读权限。同时要保证用户cwRsyncServer既是该文件拥有者又对其具有读写权限。设置如下:

<a href="http://s3.51cto.com/wyfs02/M01/6D/4C/wKioL1VgVqGyo0VEAAO9rYzF1o8948.jpg" target="_blank"></a>

2)开启RsyncServer 服务,开始-运行-输入 services.msc-回车后,找到RsyncServer服务并启用。

<a href="http://s3.51cto.com/wyfs02/M00/6D/4C/wKioL1VgWBDAWBJjAAGu_d8EIlw230.jpg" target="_blank"></a>

3)关闭系统防火墙

4)验证服务

打开命令提示符窗口,输入telnet 10.240.210.88 28950,若弹出@RSYNCD: 30.0,则服务正常运行。如下图:

<a href="http://s3.51cto.com/wyfs02/M00/6D/51/wKiom1VgV1vRSbzBAABo4iOka2c092.jpg" target="_blank"></a>

2 客户端安装

1)安装cwRsync4.2.0,一路next即可。

2)测试与服务端的连接是否正常

打开命令提示符窗口,输入telnet 10.240.210.88 28950,若弹出@RSYNCD: 30.0,则服务正常运行。

3)在D:\Program Files\cwRsync\etc目录下新建rsyncd.secrets密码存储文件,该文件内容为

!@#qwe   (指定用户user的密码)

4)在桌面新建一个bat脚本,内容为

<code>cd D:\Program Files\cwRsync\bin</code>

<code>rsync -vrtopg --port=28950 --progress --delete [email protected]::data /cygdrive/d/backup --password-file=/cygdrive/../etc/rsyncd.secrets</code>

<code>pause</code>

亦可为

<code>"D:\Program Files\cwRsync\bin\rsync" -vrtopg --port=28950 --progress --delete [email protected]::data /cygdrive/d/backup --password-file=/cygdrive/../etc/rsyncd.secrets</code>

二者功能相同

各项参数说明

<code> </code><code>--port=28950 为rsync端口号</code>

<code> </code><code>-vrtopg </code>

<code>     </code><code>-v, --verbose 详细模式输出</code>

<code>     </code><code>-r, --recursive 对子目录以递归模式处理</code>

<code>     </code><code>-t, --times 保持文件时间信息</code>

<code>     </code><code>-o, --owner 保持文件属主信息</code>

<code>     </code><code>-p, --perms 保持文件权限</code>

<code>     </code><code>-g, --group 保持文件属组信息</code>

<code> </code><code>--progress 显示进度</code>

<code> </code><code>--delete </code>

<code> </code><code>删除那些DST中SRC没有的文件,就是使客户端D盘下的backup目录与服务器端的backup目录完全一致。</code>

<code> </code><code>/cygdrive/d/backup   客户端D盘下的backup目录</code>

<code> </code><code>--password-file=/cygdrive/../etc/rsyncd.secrets  引入密码文件</code>

winxp下无需将改密码文件的拥有者设置为当前用户,server 2003则需要,且需设置对该文件具有读取和执行权限

5)添加到计划任务

a.winxp

开启Task Scheduler服务

<a href="http://s3.51cto.com/wyfs02/M01/6D/4D/wKioL1VgYJGQBkWVAARQqjgkzZA980.jpg" target="_blank"></a>

开始-&gt;控制面板-&gt;任务计划-&gt;打开添加任务计划-&gt;下一步

按照截图中的设置即可

<a href="http://s3.51cto.com/wyfs02/M01/6D/4D/wKioL1VgYBewaC24AAHVt5EL7WU219.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6D/4D/wKioL1VgYBfj7GipAAGFIwu33-0900.jpg" target="_blank"></a>

b.winsever 2012

<a href="http://s3.51cto.com/wyfs02/M00/6D/4D/wKioL1VgZJXhNLJQAALzqXqhbnc209.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6D/4D/wKioL1VgZJXw6jN1AAHaQFFmcOA251.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6D/52/wKiom1VgYwqilE-KAAJS1pjvwdE597.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6D/52/wKiom1VgYwrwy43JAAF9sWb8blk503.jpg" target="_blank"></a>

五、批处理脚本

<code>@echo off</code>

<code>set today=%date:~,4%-%date:~5,2%-%date:~8,2%</code>

<code>md E:\backup\data\%today%</code>

<code>md E:\backup\scripts\%today%</code>

<code>"E:\Program Files\ICW\Bin\rsync" -av /cygdrive/e/自动备份/ /cygdrive/e/backup/data/%today%/ --delete</code>

<code>"E:\Program Files\ICW\Bin\rsync" -av /cygdrive/e/backup/scripts/now/ /cygdrive/e/backup/scripts/%today%/ --delete</code>

每天执行一次,将服务器E盘下自动备份文件夹内的内容拷贝至本机的/e/backup/data/%today%/目录内

其中%today%为当前日期,如2015-05-23;将/e/backup/scripts/now/文件内的所有内容拷贝到/e/backup/scripts/%today%/

<code>md C:\backup\data\%today%</code>

<code>md C:\backup\scripts\%today%</code>

<code>echo. &gt;&gt;C:\backup\scripts\%today%\backup_daily.log</code>

<code>echo **************************************************%today%**************************************************&gt;&gt;C:\backup\scripts\now\backup_daily.log</code>

<code>"D:\Program Files\ICW\Bin\rsync" -av /cygdrive/c/自动备份/ /cygdrive/c/backup/data/%today%/ --delete &gt;&gt;C:\backup\scripts\now\backup_daily.log</code>

<code>"D:\Program Files\ICW\Bin\rsync" -av /cygdrive/c/backup/scripts/now/ /cygdrive/c/backup/scripts/%today%/  &gt;&gt;C:\backup\scripts\now\backup_daily.log</code>

<code>echo. &gt;&gt;C:\backup\scripts\now\backup_daily.log </code>

输出每天的log文件

本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1654473,如需转载请自行联系原作者

继续阅读