公司SVN准备从Windows迁移到Linux上,故使用此工具先来完成数据复制。
首先Linux服务器上配置并启动rsync服务端:
[root@SVN ~]# yum install -y rsync [root@SVN ~]# vim /etc/rsyncd.conf
user chroot = no uid = apache gid = apache max connections = 300 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log [svn] path = /data/www/svn/data/ read only = no hosts allow = 172.16.220.0/24 auth users = apache secrets file = /etc/rsyncd.password
配置文件项说明:
- use chroot 如果”use chroot”指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺 点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true。
- uid 该选项指定当该模块传输文件时守护进程应该具有的uid,配合gid选项使用可以确定哪些可以访问怎么样的文件权限,默认值是”nobody”
- gid 该选项指定当该模块传输文件时守护进程应该具有的gid。默认值为”nobody”
- max connections 指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。默认值是0,也就是没有限制。
- auth users 该选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块
- secrets file 该选项指定一个包含定义用户名:密码对的文件。只有在”auth users”被定义时,该文件才有作用。文件每行包含一个username:passwd对
建立用户密码文件:
[root@SVN ~]# echo 'apache:apache' > /etc/rsyncd.password
启动rsync服务端:
[root@SVN ~]# rsync --daemon [root@SVN ~]# netstat -nlput | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 23245/rsync tcp 0 0 :::873 :::* LISTEN 23245/rsync [root@SVN ~]#
Windows端rsync安装:下载地址
免费版未带服务端,不过也够了。
下载完后解压出来,并配置好环境变量,使命令可被直接运行:
建立密码文件(只保留密码即可):
进行文件同步,将本地数据同步到rsync服务端:
rsync -avPh --delete /cygdrive/d/svn_server/Repositories/WL_department [email protected]::svn --password-file=/cygdrive/d/PATH/rsyncd.password
注: /cygdrive/d指得是D:盘。 –delete 删除那些DST中SRC没有的文件。
同步完成:
同样,服务端也会有日志记录: