概述
Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及解压缩操作,减少带宽流量。支持scp、ssh及直接socket方式连接,支持匿名传输。
安装配置Rsync服务端
点击服务端安装程序进行安装,安装过程中提示输入服务端程序以服务运行时的用户名,密码。可以自定义。
安装完成之后,进入程序安装目录根目录,打开配置文件(如:C:\Program Files\ICW\rsyncd.conf ),进入配置。
这里也可以使用默认的用户名和密码,最好自定义一个
修改服务端rsync.conf
默认配置
use chroot = falsestrict modes = falseuid = 0 # 0代表不限定用户hosts allow = * # 所有主机均可访问gid = 0log file = rsyncd.log# Module definitions# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work[testwin]path = /cygdrive/d/ftpdata # 和linux不同的是windows的备份目录前面都要加/cygdriveignore errorsread only = falsetransfer logging = yesauth users = testwin_rsync # rsync的虚拟用户secrets file = etc/rsyncd.password # rsync的密码文件路径 这里如果报错使用全路径 例 /cygdrive/c/Program Files (x86)/ICW/etc/rsync.password
修改配置
use chroot = falsestrict modes = falselock file = rsyncd.lock hosts allow = 192.168.1.21max connections = 5port = 28950pid = 0uid = 0log file = /cygdrive/f/RsyncLog/rsyncd.log# Module definitions# Remember cygwin naming conventions : c:\work becomes /cygdrive/c/work[data_backup]path = /cygdrive/f/dataBackupauth users = dbbackupersecrets file = /cygdrive/e/Setting/Rsync/rsync_db.psread only = nolist = notransfer 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
密码文件格式:用户名:密码(root:12345),一行一个,有的系统不支持长密码,另个密码文件的权限对其它用户组是不可读的,设置错了可能不工作。在Windows下,密码文件的访问权限一定要设置正确,不然用户验证的时候通不过。应将密码文件E:\Setting\Rsync\rsync_db.ps的权限加入Rsycn服务运行服务的用户名 cwRsyncServer 的读取权限 及 设置其为该文件为所有者。如下图:
在服务管理器中,找到服务 RsyncServer 服务,并启动服务。
如果开启了防火墙,则防火墙规则中要添加Tcp端口 28950 允许通信。
服务验证
打开dos命令框,输入telnet 192.168.1.20 28950 (如果没有安装telnet服务端与客户端,请在控制面板->添加删除程序->打开关闭windows功能中找到Telnet客户端和服务端,勾选进行安装)。如果telnet能成功连接,出现@RSYNCD: 30.0 等类似文字,则说明服务启动正常。
安装配置Rsync客户端
安装Rsync客户端程序,直至安装完成。参考服务端安装过程
测试连通性
在Rsync客户端所在计算机telnet Rsync服务端所在计算的相应地址和端口
telnet 192.168.1.20 28950
出现@RSYNCD: 30.0 等类似文字,则说明客户端连接服务端正常。
打开Dos命令窗口,进到Rsync客户端安装目录的bin目录下,如:C:\Program Files\cwRsync\bin\。输入以下命令,开始进行同步:
rsync.exe -avz --password-file=rsync.password test_rsync@192.168.4.12::testwin /cygdrive/f/testwin_rsyncdir
注意:客户端执行的时候要在客户端的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地址
设置该命令文件的用户需要添加密码文件的读取权限及加其为文件所有者。如下: