分享我写的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。
具体来讲:
  1. cygwin版的rsync,默认找不到home目录,找不到ssh-keyfile,找不到这个文件:c:\Users\你的用户名.ssh\id_rsa
  2. 脚本转换了win,linux路径。
  3. 免添加know_host
  4. 封装了常用参数。添加了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。还有好几种很不错的开源,免费工具。我下次给你推荐。
(文章来自原创,转载请联系授权 )
继续阅读