如何在windows上使用rsync

本文由 简悦 SimpRead 转码, 原文地址 kaifeiji.cc

本博客部署在 VPS 上,之前一直用 SFTP 上传到服务器,不是很方便。 想到用 rsync 可以远程同步。

本博客部署在 VPS 上,之前一直用 SFTP 上传到服务器,不是很方便。

想到用 rsync 可以远程同步。

远程同步文件的选项

向 Linux 服务器远程同步文件,选项还是挺多的:

1、SFTP

Linux 发行版一般都自带 sftp-server,所以只需要本地装个 FileZilla,用 SSH 账号连接上传即可。

有三个痛点:一是难以用脚本实现自动化,二是加密传输速度慢,三是更新同步不方便(全量覆盖?选择覆盖?)。

2、FTP

Linux 需要安装一个 FTP 服务器,倒也不繁琐;本地还是 FileZilla。

解决了 SFTP 速度慢的问题,但仍然无法实现自动化的更新同步。

3、Git

需要有一个 Git 服务器做中转,GitHub、GitLab、Gitee,或者自建 Git Server 也行。

本地和 VPS 克隆同一个仓库。

本地提交(git commit -m "new article"),推送(git push)。

VPS 拉取(git pull)。

实现了增量同步,不用全量覆盖(几百 MB)等半天。

4、rsync

Linux 自带,速度快,增量同步——简直完美。

在 Windows 中使用 rsync

重点来了,怎么在 Windows 使用 Linux 的 rsync 命令呢?

cwrsync

cwrsync 是 itefix.net 开发的 rsync 在 Windows 的实现。

早期有免费版本,目前官网开始收费,不提供免费下载链接,但在其他地方仍然能下载到。

下载解压到C:\app\cwrsync,进入 cmd:

C:\app\cwrsync> cd bin
C:\app\cwrsync\bin> rsync -av --progress /cygdrive/c/some/path/ user@123.123.123.123:/var/www/blog

注意:rsync 不支持 Windows 格式的路径(例如 C:\some\path\),cwrsync 使用 / cygdrive/c/some/path/,映射到 C 盘的对应路径。

cygwin

cygwin 是在 Windows 上兼容 POSIX 的模拟层:提供 Cygwin Terminal,可以执行 Shell 命令,例如 ls、mkdir 等;提供了包管理服务,可以安装包括 rsync 在内的常见 Linux 软件。

在安装 cygwin 的过程中,可以选择安装 rsync:

如果已经安装过 cygwin,可以再次执行 cygwin 的 setup 安装包,选择安装 rsync。

安装完成后,直接使用 rsync 即可:

没错,cygwin 用的路径也是/cygdrive/c/some/path/,因为 cwrsync 其实是基于 cygwin 开发的。

git bash

优点是只要在 Windows 安装了 git 就能使用,缺点是安装 rsync 比较麻烦。

具体参考这位老哥的文章:

How to use rsync on Git Bash

与 cygwin 不同的是,git bash 是基于 MinGW 在 Windows 实现的 bash shell,它所映射的 Windows 路径是这样的:/c/some/path/

WSL

WSL 是更重的解决方案,但是一劳永逸。不再赘述。