使用rsync同步Windows、Linux数据

公司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安装:下载地址

免费版未带服务端,不过也够了。

下载完后解压出来,并配置好环境变量,使命令可被直接运行:

path

建立密码文件(只保留密码即可):

rsync-pass

进行文件同步,将本地数据同步到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没有的文件。

同步完成:

rsync_wok

同样,服务端也会有日志记录:

rsync_ok

发表评论

error: Content is protected !!