背景

公司有台windows服务器上面装了svn应用,需要将svn上面的仓库目录定时同步到linux服务器做备份,以下记录操作过程

安装cwRsync

服务端下载链接:

https://yddown1.jb51.net/200906/tools/cwRsyncServer_3.1.0_Installer.zip?auth_key=1724226771-d411d3abd602cc5ddaa6-0-3ea8f39427bf953a82b7497409a41e2f9a988abef606b7b6b875bf1e38eae6e5
  • 1.

客户端下载链接:

https://yddown1.jb51.net/200906/tools/cwRsync_3.1.0_Installer.zip?auth_key=1724231500-4b68e2dd20739c1814f9-0-e5380a04b51b4cabe29331169370f48aa4f5f16dab859e2c0748e95ea4298bb3
  • 1.

windows程序安装一般一路下一步就行了,需要注意的是安装服务端过程中会出现一个账号密码(默认不改,账号默认随机生成,可以不改也可以自定义),记住这个账号名称,后面修改配置有用。

编辑rsync.conf配置文件

如下:

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
max connections = 10
lock file = rsyncd.lock
motd file = rsyncd.motd
uid = 0
gid = 0
transfer logging = yes
read only = yes
list = no
port = 28950
secrets file = password.txt
charset = GBK
[sfsvn]
path = /cygdrive/d/Program Files/VisualSVN Server/Repositories
read only = false
transfer logging = yes

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

说明:
1、cwrsync这个软件他不认windows磁盘符,需要这样写:
D:/Program Files/VisualSVN Server/Repositories
改成:
/cygdrive/d/Program Files/VisualSVN Server/Repositories
2、windows和linux字符编码不一样,此处要定义charset = GBK否则linux同步时会报乱码

启动服务

开始–运行–services.msc打开系统服务,找到RsyncServer
windows使用csRsync同步文件到linux_密码
右键–启动,并设置自启动
windows使用csRsync同步文件到linux_cwrsync_02

防火墙开放端口

开始–搜索–防火墙打开防火墙高级设置
windows使用csRsync同步文件到linux_rsync_03
windows使用csRsync同步文件到linux_密码_04
windows使用csRsync同步文件到linux_编码_05
windows使用csRsync同步文件到linux_编码_06
windows使用csRsync同步文件到linux_cwrsync_07
windows使用csRsync同步文件到linux_编码_08

linux客户端同步

rsync --port=28950 -vzrtopg --progress --delete --iconv=utf-8,GBK harmony@10.10.10.121::sfsvn /backup_2/backup_121/Repositories
  • 1.

可以看到已经同步过来了
windows使用csRsync同步文件到linux_同步_09
说明:
1、–iconv选项用来转换windows和linux的字符编码以解决乱码问题,uft-8代表本地linux编码,GBK代表远程主机编码,此处需要在前面服务端提前配置charset = GBK
2、@ERROR: chdir failed这个错误的原因是因为要同步的目录用户没有权限,可以查看服务端的rsync.log文件里面有提示:
windows使用csRsync同步文件到linux_rsync_10
给目录添加用户权限即可
windows使用csRsync同步文件到linux_rsync_11
参考链接:
 https://blog.csdn.net/qq_42684504/article/details/105433988
 https://blog.csdn.net/woshiliulei0/article/details/51713404
 https://blog.csdn.net/qq_52302132/article/details/127373311