背景

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

安装cwRsync

服务端下载链接:

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

客户端下载链接:

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

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

启动服务

开始--运行--services.msc打开系统服务,找到RsyncServer image.png 右键--启动,并设置自启动 image.png

防火墙开放端口

开始--搜索--防火墙打开防火墙高级设置 image.png image.png image.png image.png image.png image.png

linux客户端同步

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

可以看到已经同步过来了 image.png 说明: 1、--iconv选项用来转换windows和linux的字符编码以解决乱码问题,uft-8代表本地linux编码,GBK代表远程主机编码,此处需要在前面服务端提前配置charset = GBK 2、@ERROR: chdir failed这个错误的原因是因为要同步的目录用户没有权限,可以查看服务端的rsync.log文件里面有提示: image.png 给目录添加用户权限即可 image.png 参考链接: 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