cwRsyncServer的安装使用
一、概述
linux/unix下的优秀开源备份工具非常多,rsync常是其中的一个。当然因其出色的性能,由此产生的变种类型的类rsync软件也非常之多。鉴于其在LINUX/unix上的成功,于是将其windows化也便理所当然了,不过其在windows下的变种也非常多,不过出较正统的应该还是cwRsync 。
二、下载和安装
cwrsync在sourceforge上最新版本的托管页面为: http://sourceforge.net/projects/sereds/files/cwRsync/4.0.5/ ,其中包含有两个软件,一个是客户端一个是服务端。windows下的软件安装都比较简单,自然是下一步下一步就OK了。不过其中有一项需要新建系统用户名和密码项要注意(如下图):
注:为避免安全性的问题,最好能将默认的用户名密码更改。另外,备份的目录可以由该用户写入更改的权限。如果想避免由此引起的问题,可以考试将安装使用的用户加入管理员组。并且设置一个复杂的密码。因为该用户只有在启动和关闭RsyncServer服务时使用。
三、修改配置文件进行同步
依次点击,开始—— 程序 ——cwRsyncServer ——01. rsyncd.conf;打开rsyncd的配置文件,进行配置,下面我列出一个简单的demo配置,如下:
1use chroot = false
2uid = 0
3gid = 0
4strict modes = false
5hosts allow = 192.168.10.0/255.255.255.0
6hosts deny = *
7log file = rsyncd.log
8# Module definitions
9# Remember cygwin naming conventions : c:work becomes /cygwin/c/work
10#
11[test]
12path = /cygdrive/e/back
13auth users = abc
14secrets file = etc/user.pas
15read only = false
16transfer logging = yes
然后打开etc配置目录 —— 默认在C:\Program Files\ICW\etc,配置密码文件user.pas 。输入内容如下:
1abc:123 //这个用户和刚刚安装时的系统用户无关,可随意取
2用户名:密码
至此配置完成后,再通过services.msc打开启RsyncServer服务即可进行文件同步了。
四、同linux同步下的一些权限和访问问题
windows同windows之间的同步,一般不会存在权限的问题。但在通过linux rsync客户端向windows服务端进行同步时,遇到权限问题。LINUX下需要同步的文件如下:
1[root@localhost ~]# ll /opt/mysqldata/
2总计 20564
3-rw-rw---- 1 mysql mysql 10485760 10-11 15:10 ibdata1
4-rw-rw---- 1 mysql mysql 5242880 10-11 15:11 ib_logfile0
5-rw-rw---- 1 mysql mysql 5242880 10-11 14:28 ib_logfile1
6-rw-rw---- 1 mysql mysql 6 10-11 15:11 localhost.localdomain.pid
7-rw-rw---- 1 mysql mysql 66 10-15 15:11 master.info
8drwx------ 2 mysql root 4096 10-11 14:27 mysql
9-rw-rw---- 1 mysql root 6427 10-15 16:11 mysqld.log
10srwxrwxrwx 1 mysql mysql 0 10-11 15:11 mysql.sock
可以看到上面的文件的属主主要为mysql ,在通过下面的命令进行同步时出现报错(该处使用推的方式向服务端存数据):
1[root@localhost ~]# rsync -avzP --delete /opt/mysqldata/ [email protected]::test --password-file=/root/pass.txt
2sending incremental file list
3./
4rsync: failed to set times on "." (in test): Is a directory (21)
5ib_logfile0
6 5242880 100% 54.01MB/s 0:00:00 (xfer#1, to-check=66/68)
7ib_logfile1
8 5242880 100% 31.06MB/s 0:00:00 (xfer#2, to-check=65/68)
9ibdata1
10 10485760 100% 33.33MB/s 0:00:00 (xfer#3, to-check=64/68)
11rsync: chown ".ib_logfile0.Ffc2lF" (in test) failed: Invalid argument (22)
12rsync: chown ".ib_logfile1.5ZABPv" (in test) failed: Invalid argument (22)
13rsync: chown ".ibdata1.r7HxRn" (in test) failed: Invalid argument (22)
14rsync: chown "mysql/.proc.MYD.Rh5A74" (in test) failed: Invalid argument (22)
可以发现,文件同步没有问题,可以对文件和目录进行同步,但进行chown权限处理时出错,现在我们再去服务端上查看同步的文件时,发现:同步的根目录下的文件可以正常打开,但目录打开时会出现下面的错误:
如上图所以,我打开mysqld.log文件正常,双击mysql目录时,就报上面的错误。进行删除也不成功,通过360强力删除无效果(360强力删除后,会发现该分区甚至不能格式化,清理这些备份文件)。难不成我们真对上面的文件删除无计可施了吗?
当然不会,我们有两两种方法将上面的文件清除。
方法1、通过属主全为root的目录文件再行覆盖同步:
1[root@localhost ni]# ll
2总计 4
3-rw-r--r-- 1 root root 0 10-12 16:32 a
4drwxr-xr-x 2 root root 4096 10-12 16:32 ab
5-rw-r--r-- 1 root root 0 10-12 16:32 b
6[root@localhost ni]# rsync -avzP --delete /opt/ni/ [email protected]::test --password-file=/root/pass.txt
方法2、通过cwRsyncServer自带的工具进行处理。
1C:\Program Files\ICW\Bin>chmod 777 /cygdrive/e/back/*
注:上面的这个文件实际上也见接的造成,我们不能查看同步目录下的子目录里的文件,但这并非是种坏事,以免造成我们去误操作这些备份文件。如果我们想查看目录下的文件就需要通过cwrsyncserver自带的chmod去修改文件的权限或chown修改文件的属主。
解决了上面这个棘手问题,我们再看刚刚的Invalid argument的问题,其引起的原因,是因为我们在同步时,参数-a相当于-rlptgoD ,去掉其中go(group 、owner)两个参数即可,即rsync –-rlptDvzP …… 。
五、总结
linux和windows之间虽然通过文件同步,虽然会有一些报错,主要是权限的问题,但对于文件的完整性来说,并没有问题。还拿上面的例子,我们通过linux取回保存在windows server端的文件时,发现文件并没有损坏。
1rsync -avzP --delete --password-file=/root/pass.txt [email protected]::test /root/test
2[root@localhost ni]# cd /root/test/
3[root@localhost test]# ll
4总计 20564
5-rw------- 1 root root 10485760 10-11 15:10 ibdata1
6-rw------- 1 root root 5242880 10-11 15:11 ib_logfile0
7-rw------- 1 root root 5242880 10-11 14:28 ib_logfile1
8-rw------- 1 root root 6 10-11 15:11 localhost.localdomain.pid
9-rw------- 1 root root 66 10-15 15:11 master.info
10drwx------ 2 root root 4096 10-11 14:27 mysql
11-rw------- 1 root root 6427 10-15 16:11 mysqld.log
12srwxrwxrwx 1 root root 0 10-11 15:11 mysql.sock
以上我们通过拉的方式将server端的文件同步回本地。发现文件的属主变成了root,但所有的文件,放回本地后,都可以正常使用。且数据内容并未发生变化。另外,如果你用不惯命令和参数的方式进行配置,在windows下的rsync还为一些具有图形界面的rsync工具 。比较具有代表性的有deltacopy ,不过该工具需要依赖cwrsync服务端才能运行 。
2013年03月08日后记:
cwrsync目前已从sourceforge项目上移走,目前可以通过其官方网站上下载:https://www.itefix.no/i2/cwrsync-get ,不过官方站上有收费版和免费版,可以查清了以后再下载。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/cwrsync/1806.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.