首页 文章详情

分享我写的win版rsync脚本

马哥Linux运维 | 258 2021-05-14 15:13 0 0 0
UniSMS (合一短信)

分享我写的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。还有好几种很不错的开源,免费工具。我下次给你推荐。

(文章来自原创,转载请联系授权 )

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter