在windows上使用rsync

Rsync Run on Linux:cwRsync Server 和 Git Bash+Rsync

Rsync可真好用啊~在linux上使用习惯了Rsync,用它传文件、同步、备份、断点续传、增量传输,组合其他工具实现各种功能,可好用了。但是windows上却不能用,按照我的性格绝不能容忍,搞起来~~~

大体查了下有两种实现方式:cwRsync软件;Git Bash+Rsync

一、cwRsync Server 和 客户端

cwRsync是包了个外壳,里面是rsync+Cygwin,最新版是6.10,最后的免费版是4.10(官网只有最新的收费版),我下载了4.10安装成功,启动服务失败,没做debug直接转另一种方式

 

二、Git Bash+rsync

众所周知,rsync是linux上的工具,开发者并没有提供windows版。只有在windows上搞一个linux environment才能愉快的跑起来。那么对应的解决办法就是Cygwin(cwRsync使用的方式)、WSL此类的。但是还有个简单的办法,在Git Bash 上跑rsync。

Git for Windows 是基于 MSYS 做出来的。

MSYS

当 MinGW 出现之后,程序员们发现光有 GCC 不行啊,面对着如此 naive 的 Windows 命令行也照样不能干活,Cygwin 又太大了。所以 MinGW 的一群人再次 fork 了 Cygwin,把它精简了一番,就成了 MSYS。后来,MinGW 咕咕咕了,MSYS 也随之咕咕咕了,又一群程序员 fork 了新版本的 Cygwin,精简了一番,给它加上了 Pacman 包管理器(没错就是 Arch Linux 用的那个),最后给 MSYS 的名字后面加了个 2,成了 MSYS2。

Git for Windows

随着 Git 的快速完善,将 Git 移植到 Windows 的呼声越来越高,可是 Git 需要很多 Linux 下的命令行工具,所以不想重复造轮子的 Git 开发者们找到了 MSYS2,又将 MSYS2 做了一番精简和针对 Git 的修改,把 Git 放了进去。

–https://www.zhihu.com/question/65055974/answer/227054790

找到了 rsync 在 Windows 平台的 pacman package,同样就可以实现在 Windows Git Bash 中运行 rsync。

在mysy2的一个镜像站(http://www2.futureware.at/~nickoe/msys2-mirror/msys/x86_64/)可以找到对应的包,但是没有依赖关系;但是可以在mysy2的官网(https://packages.msys2.org/search?t=pkg&q=rsync)查到对应的包和依赖关系。

在git bash上安装rsync所需要的依赖及安装顺序:

zstd-1.4.4-1-x86_64.pkg.tar.xz       (解压命令 mkdir zstd && tar xvJf zstd-1.4.4-1-x86_64.pkg.tar.xz -C zstd)
libzstd-1.4.4-1-x86_64.pkg.tar.xz       (解压命令 mkdir libzstd && tar xvJf libzstd-1.4.4-1-x86_64.pkg.tar.xz -C libzstd)
libxxhash-0.8.0-1-x86_64.pkg.tar.zst (解压命令 mkdir libxxhash && tar-I zstd xvf libxxhash-0.8.0-1-x86_64.pkg.tar.zst -C libxxhash)
rsync-3.2.3-1-x86_64.pkg.tar.zst   (解压命令 mkdir rsync && tar-I zstd xvf rsync-3.2.3-1-x86_64.pkg.tar.zst -C rsync)

加压之后将以上路径里的usr/bin/下面的文件复制到Git Bash安装路径对应的usr/bin/下面

同理:usr/bin/ -> [Git Paht]/usr/bin/
usr/lib/ -> [Git Paht]/usr/lib/
usr/share/ -> [Git Paht]/usr/share/

安装完成后,在Git Bash中执行rsync –version查看版本

rsync如何使用,请查看 linux: rsync学习及踩坑 

 

参考文章:

Windows下使用Git+rsync构建文件同步工具

 

发表评论

邮箱地址不会被公开。 必填项已用*标注