需求
大文件采用命令行进行传输,scp传输大文件比较慢
参考资料
链接1, https://www.cnblogs.com/01-single/p/8652597.html
链接2, https://www.cnblogs.com/xiaoyou2018/p/11535888.html
将 windows (win10)作为
服务器
端,将 linux/ubuntu18.04 作为 * 客户端*
windows 服务器端操作
windows端 下载及安装
-
rsync 安装包 下载地址:
https://www.backupassist.com/rsync/ -
安装过程:
全部Agree, 注意不要更改
安装地址 用户命 和 密码
, 采用默认SvcCWRSYNC, 否则后期服务打不
注意事项
: 需要把用户名 和 地址记录下来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
-
安装检验
控制面板 -》 (小图标) 管理工具 -》 服务, 找到 RsyncServer, 若可以打开则okay,并设置该服务类型 为 启动 (右键) ; 若没有对应的服务,则重新安装,全部默认选项。
注意事项
: 在未来更改
rsyncd.conf
文件以后,需要不懂重新启动该服务,才可以使得改动生效。
设置 rsync 传输文件夹
-
在D盘中新建
D:/1_rsyncBakup
作为 待传输的文件夹 以传输目标文件到linux客户端 -
右击该文件
D:/1_rsyncBakup
,属性 -》 安全, 把 rsync 账户 (SvcCWRSYNC) 添加进来,并设置权限为 完全控制 。如 链接1 -
修改配置文件
rsyncd.conf
(路径:
C:\Program Files (x86)\ICW\rsyncd.conf
) 如
重要修改内容:
port = 52326 含义指定一个目标端口;
path = /cygdrive/d/1_rsyncBakup 含义指定路径/d/1_rsyncBakup (p.s. 这里注意指定盘符,否则后续找不到客户端找不到路径)
secrets file = etc/rsyncd.secrets 存放用户名密码的认证文件路径, 在
C:\Program Files (x86)\ICW\etc
文件夹下,新建 文件
rsync.secrets
写入
SvcCWRSYNC:test1234
test1234这里是对应显示的密码
其余内容 最好也设置一下
在设置以后 注意重启rsync服务
UID = 0
GID = 0
use chroot = false
strict modes = false
hosts allow = *
max connections = 5
port = 52326
log file = rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /cygdrive/d/1_rsyncBakup
read only = false
transfer logging = yes
auth users = SvcCWRSYNC
secrets file = etc/rsyncd.secrets
lock file = rsyncd.lock
检验是否安装成功
-
首先查出本机的服务器ipv4地址 (win+r 输入 cmd 打开命令行后输入,
ipconfig
), 假设为
192.168.1.2
-
其次 检验 telnet 服务是否安装 ,
安装链接
, 这里注意,只开启 指定的端口 52326 端口,操作方法:【开启】—【控制面板】–【Windows防火墙】–【高级设置】–【入站规则】–【新建规则(在界面的最右边)】—【端口】–【Tcp】–输入【特定本地端口(我这边就是输入
52326
)】–【允许连接】–【具体情况下可配置只允许访问的用户,这边没有配置,直接下一步】–【配置可访问的计算机,这边也没有配置,直接下一步】–【域,专用,公用都选择上,下一步】–【输入规则名称(比如我这边是要开发tomcat让外面访问,就起名TomcatServer)】–【完成即可】 -
最后 在命令行中输入
telnet 192.168.1.2 52326
进行服务器内部 telnet测试链接,若出现
@RSYNCD: 30.0
则连接正常
linux 客户端操作
安装及配置
本机使用的是ubuntu 18.04 系统,自带rsync服务,不用安装 按照
链接
进行配置。
测试 客户端 是否可以与服务器端连接
telnet 192.168.1.2 52326
,若出现
@RSYNCD: 30.0
则连接正常
测试数据是否 可以手动同步
rsync --port=52326 -vzrtopg --progress SvcCWRSYNC@192.168.1.2::1_rsyncBakup ~/test
这里会提示输入密码:test1234 (此处的密码为cwRsyncServer服务端
C:\Program Files (x86)\ICW\etc\rsyncd.secrets
文件配置的密码)
含义为 将 服务器端
d:/1_rsyncBakup
里的文件拷贝到 客户端
~/test
-vzrtopg
参数 中的 rp 代表断点续传,可以解决大文件的传输问题; 进一步 r:递归方式 v:详细提示 z:压缩 t:修改次数 -o –owner:保持owner属性(属主) -g –group:保持group属性(属组) -p –perms:保持perms属性(权限,不包括特殊权限)。
--progress
:指显示
--delete
参数,这个的意思是服务器端与客户端保持完全一致,客户段与服务端不同的文件客户端会进行删除操作,这里小编建议新手不要加上这个参数,如果服务端误操作删掉了文件那你所有的机器都会删掉这个文件,就会很麻烦,所以先可以不加这个参数
rsync的进一步用法可参考
rsync 用法
定时执行
暂时不需要没设置,参考链接1,链接2
一些常见补充 的提示
https://www.cnblogs.com/szw/p/3381705.html
https://www.jb51.net/article/31920.htm
https://www.jb51.net/article/60194.htm
注意当出现问题 注意检查
rsyncd.conf
里 路径 path的 盘符问题,一下午时间浪费在这个上了。。。。
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [rec
eiver=3.0.2]