Rsync是linux,WIN平台下一款非常好用的文件同步软件,自带算法支持增量同步,可靠性非常高。本文介绍一下WIN平台下rsync的搭建和使用。
下载前准备:
- 0.5_Installer (http://linux.linuxidc.com/index.php?folder=MjAxNMTq18rBzy8x1MIvMjTI1S9jd1JzeW5jIDQuMC41LVJzeW5jIGZvciBXaW5kb3dzIM/C1Ng=)
安装:
- 安装服务端
- 点击服务端安装程序进行安装,安装过程中提示输入服务端程序以服务运行时的用户名,密码。可以自定义,也可以用默认的用户名密码设置。(cwrsync— cwrsync)
- 编辑配置文件(打开配置文件(如:C:\Program Files\ICW\rsyncd.conf )
*注意,配置文件大小写敏感,包括WIN下面的目录名
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
gid = 0
log file = /cygdrive/E/MyTemp/rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygdrive/c/work
[bak1]
path = /cygdrive/E/MyTemp/Download
auth users = jhshen
secrets file = /cygdrive/E/MyTemp/rsyncpwd.txt
read only = no
list = no
transfer logging = yes
[bak2]
path = /cygdrive/E/MyTemp/dsm_rsync
auth users = jhshen
secrets file = /cygdrive/E/MyTemp/rsyncpwd.txt
read only = no
list = no
transfer logging = yes
以上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用户名对应的密码文件。
- 新建密码文件:E:\Setting\Rsync\rsync_db.ps
root:root
admin:12345
密码文件格式:用户名:密码,一行一个,有的系统不支持长密码,另个密码文件的权限对其它用户组是不可读的,设置错了可能不工作。在Windows下,密码文件的访问权限一定要设置正确,不然用户验证的时候通不过。应将密码文件E:\Setting\Rsync\rsync_db.ps的权限加入Rsycn服务运行服务的用户名 cwRsyncServer 的读取权限 及 设置其为该文件为所有者。
- 在服务管理器中,找到服务 RsyncServer 服务,并启动服务。
- 如果开启了防火墙,则防火墙规则中要添加Tcp端口 28950 允许通信。
- 服务验证,打开dos命令框,输入telnet 192.168.2.11 28950 (如果没有安装telnet服务端与客户端,请在控制面板->添加删除程序->打开关闭windows功能中找到Telnet客户端和服务端,勾选进行安装)。如果telnet能成功连接,出现@RSYNCD: 30.0 等类似文字,则说明服务启动正常。
- 安装客户端
使用命令行:
rsync –port=28950 -vzrtopg –progress –delete jhshen@127.0.0.1::bak1 /cygdrive/E/MyTemp/1 –password-file=/cygdrive/E/MyTemp/c.txt
以上表示,将服务器【data_backup】中定义的目录,备份到E/MyTemp/1下,并且服务器上没有的文件客户端会删除—以服务器为准,单向镜像,使得客户端与服务器保持一致
用户名为jhshen, 密码为cygdrive/E/MyTemp/c.txt文件中提供,一行只有密码,和服务中的配置一样
rsync –port=28950 -vzrtopg –progress –delete /cygdrive/E/MyTemp/1 jhshen@127.0.0.1::data_backup –password-file=/cygdrive/E/MyTemp/c.txt
以上表示,,E/MyTemp/1目录 备份到服务器【data_backup】中定义的目录下,并且1目录下没有的内容,服务器上也会删除,单向镜像
–delete:如果源端没有此文件,那么目的端也别想拥有,删除之。(如果你使用这个选项,就必须搭配-r选项一起)
–delete-excluded:专门指定一些要在目的端删除的文件。
–delete-after:默认情况下,rsync是先清理目的端的文件再开始数据同步;如果使用此选项,则rsync会先进行数据同步,都完成后再删除那些需要清理的文件。
这个学习可是要小心使用到,一不小心会删除很多东西哦。
可以使用-n选项,它会用受影响的文件列表来警告你,但不会真的去删除,这就让我们有了确认的机会和回旋的余地。
- 从群晖里复制文件到WINX下的rsync服务器
sudo -i
rsync –port=28950 -vzrtopgn –progress –delete /volume1/dsm1 jhshen@192.168.249.1::bak2