分享我写的win版rsync脚本
分享我写的win版rsync脚本。它和linux版互联工作,来实现两台机子同步文件。
前言:
对于同步文件,ansible有win <=> win模块,基于robocopy。有linux <=> linux之间的同步模块,基于rsync。却没有win <=> inux之间的文件同步。
我写了2个脚本,封装了cwrsync客户端,解决了win <=> linux之间的文件同步问题。简单来讲,封装好了win版的rsync。
k_rsync_winfromlinux.ps1
k_rsync_wintolinux.ps1
注意:rsync是【文件块】级别的同步软件。
脚本下载:
https://gitee.com/chuanjiao10/kasini3000
问:为什么要用你这个脚本?
问:你的脚本做了哪些事情?
答:简单来讲,在cwrsync的基础上,封装好了win版的rsync。
具体来讲:
cygwin版的rsync,默认找不到home目录,找不到ssh-keyfile,找不到这个文件:c:\Users\你的用户名.ssh\id_rsa
脚本转换了win,linux路径。
免添加know_host
封装了常用参数。添加了debugging参数。使用debugging时,可以输出rsync命令的所有参数,还可以已暂停。
系统需求:
本地:win+powershell 5.1 win+powershell 7,及以上
远端:任意linux发型版本,加最新版的rsync。
用法:把win主控机的,'e:\temp7'目录,含子目录。同步到linux被控机的'/tmp/',目录内。
.\k_rsync_wintolinux.ps1 -Path 'e:\temp7' -Destination '/tmp/' -被控机ip地址 '192.168.1.2' -Recurse -Delete -debugging
后面三个参数可选。
用法:把linux被控机的,'/tmp/temp8'目录,含子目录。同步到win主控机的,'e:\temp7'目录内。
.\k_rsync_winfromlinux.ps1 -Path '/tmp/temp8' -Destination 'e:\temp7\' -被控机ip地址 '192.168.1.2' -Recurse -Delete -debugging
后面三个参数可选。
对于英文用户,可以使用【-ip】代替【-被控机ip地址】,作用相同。
结论:
这个脚本其实还可以再次完善,増补常用功能。
win <=> linux之间的文件同步,就用我封装的免费脚本!
卡死你3000所使用的文件同步,不光有rsync。还有好几种很不错的开源,免费工具。我下次给你推荐。
(文章来自原创,转载请联系授权 )
评论