本文由 简悦 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 比较麻烦。
具体参考这位老哥的文章:
与 cygwin 不同的是,git bash 是基于 MinGW 在 Windows 实现的 bash shell,它所映射的 Windows 路径是这样的:/c/some/path/。
WSL
WSL 是更重的解决方案,但是一劳永逸。不再赘述。

