晨星
晨星
发布于 2024-12-23 / 12 阅读
0
0

在 Windows 系统上使用 rsync

rsync 是一款强大的文件同步工具,广泛应用于 Unix/Linux/BSD 系统。它以其高效的 delta 算法而闻名,该算法通过仅传输文件差异部分来最小化复制的数据量,从而实现快速的文件同步。尽管 rsync 主要是一个命令行工具,但 Windows 用户也可以使用它,并且有一些图形界面选项可供那些更喜欢图形界面的用户使用。

为什么在 Windows 上使用 rsync?

Windows 用户可能会问,为什么不直接使用 Robocopy 等原生 Windows 工具呢?rsync 提供了一些 Robocopy 不具备的优势:

  • Delta 传输算法: rsync 只传输文件已更改的部分,从而显著减少了同步所需的时间和带宽,尤其是在处理大型文件或多个文件时。

  • 保留权限和时间戳: rsync 可以保留文件的权限和时间戳,这对于确保文件完整性和一致性至关重要。

  • 多功能性: rsync 可以处理各种同步场景,包括本地同步、远程同步、单向同步和双向同步。

如何在 Windows 系统上使用 rsync?

由于 rsync 最初是为 Unix/Linux/BSD 系统设计的,因此在 Windows 系统上运行 rsync 需要一些额外的步骤。主要有以下几种方法:

1. 使用 Cygwin 或 WSL

Cygwin 和 WSL(Windows Subsystem for Linux) 都是在 Windows 系统上运行 Linux 工具的环境。通过安装 Cygwin 或 WSL,就可以在 Windows 上运行 rsync,并访问完整的 Linux 命令行工具集。

  • Cygwin: Cygwin 是一个在 Windows 上运行类 Unix 环境的工具集。它提供了一个 DLL(cygwin1.dll),充当 Linux API 层,并将 Linux API 调用转换为 Windows API 调用。注意,Server端为商业版本,Client端为开源版。

  • WSL: WSL 是 Windows 10 及更高版本中的一项功能,允许用户直接在 Windows 上运行 Linux 发行版。

安装步骤:

Cygwin:

  1. 下载 Cygwin 安装程序: https://www.cygwin.com/

  2. 运行安装程序,选择 "Install from Internet"。

  3. 选择安装目录和本地软件包目录。

  4. 选择下载站点。

  5. 在 "Select Packages" 界面,搜索并选择以下软件包进行安装:

  • Editors: nano (或其他你熟悉的文本编辑器)

  • Net: rsync 和 openssh

  1. 完成安装。

WSL:

  1. 以管理员身份打开 PowerShell。

  2. 运行命令 wsl --install -d <发行版名称>,例如 wsl --install -d ubuntu。 这将下载并安装 Ubuntu Linux 发行版。你可以选择其他发行版,但某些步骤可能会有所不同。

  3. 等待安装完成。

  4. 初始化 Linux 发行版,并创建用户帐户。

  5. 在 Linux 发行版中,运行命令 sudo apt install rsync openssh-client 安装 rsync 和 openssh-client。

故障排除: 如果安装 OpenSSH 服务器后在 PowerShell 中未显示,则可能需要应用一些 Windows 系统更新。

使用方法:

安装完成后,就可以在 Cygwin 或 WSL 的终端中使用 rsync 命令了。

Cygwin:

  1. 要使用密码进行身份验证,需要创建一个名为 "secret" 的文件,其中包含客户端密码,以便 rsync 使用。

  • 登录 Cygwin。

  • 使用 cd / 命令切换到 Cygwin 应用程序的根目录。

  • 创建一个名为 "secret" 的文件。

  • 在 "secret" 文件中输入客户端密码,不带空格和回车符。

  1. 要将本地文件夹 "C:\data" 同步到远程服务器 "user@server:/backup",可以使用以下命令:

rsync -avz /cygdrive/c/data user@server:/backup

注意: 在 Cygwin 中,Windows 路径需要使用 /cygdrive/<盘符>/<路径> 的格式。

WSL:

  1. 创建两个目录:

mkdir srcdir backup

  1. 在 srcdir 中创建两个空文件:

touch srcdir/file1 srcdir/file2

  1. 使用以下命令将 srcdir 和 backup 目录同步:

rsync -av srcdir/ backup/

  1. 要从另一台机器访问 WSL rsync,可以使用 --rsync-path 选项指定 rsync 程序路径。例如:

rsync -avhP -e ssh local_path host:remote_path --rsync-path='wsl rsync'

注意: 当从 Windows 终端运行 Cygwin rsync 时,可能会遇到问题。要解决此问题,请指定 Cygwin ssh 路径,例如:

C:\Cygwin\bin\rsync.exe -e "C:\Cygwin\bin\ssh.exe" source_file destination

Minimal rsyncd with backuppc:

backuppc 软件包中包含一个最小的 rsyncd 实现。它基于 Cygwin,仅提供 rsyncd 守护程序服务。它是一个 32 位实现,但在 Windows 7 64 位上运行良好。

2. 使用 cwRsync

cwRsync 是一个专门为 Windows 打包的 rsync 版本。它包含了客户端和服务器端,并且支持加密。

安装步骤:

  1. 下载 cwRsync: https://www.itefix.net/cwrsync

  2. 运行安装程序,按照提示完成安装。

使用方法:

cwRsync 提供了一个图形界面和命令行界面。用户可以选择适合自己的方式使用 rsync。

配置 SSH 密钥:

为了实现无密码身份验证,需要配置 SSH 密钥。

  1. 以管理员身份登录 Windows。

  2. 单击 "开始" 按钮,然后选择 "运行"。

  3. 在 "运行" 对话框中,键入 "cmd" 并按 Enter 键。

  4. 在命令提示符窗口中,键入 cd "c:\program files\cwrsync\bin" 并按 Enter 键。

  5. 键入 ssh-keygen -t rsa -N '' 并按 Enter 键。(注意该行以两个单引号字符结尾)

  6. 系统将询问 "enter file in which to save the key" - 只需按 Enter 键接受给定的默认值。

  7. 打开 rsync 脚本(位于 "开始" 菜单 -> "程序" -> "cwRsync" -> "1. Batch Example")。

  8. 在脚本末尾添加一个或多个 rsync 命令,每个命令对应一个要备份的文件夹或文件。

3. 使用 DeltaCopy

DeltaCopy 是另一个 Windows 下的 rsync 解决方案。它是一个图形界面程序,简化了 rsync 的使用(页面有点老)。

安装步骤:

  1. 下载 DeltaCopy: https://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

  2. 运行安装程序,按照提示完成安装。

使用方法:

DeltaCopy 提供了一个图形界面,用户可以通过简单的配置完成 rsync 任务。

4. 通过 Git for Windows 安装

除了安装 WSL 和 Linux 发行版之外,还可以通过安装 Git for Windows 在 Windows 10 中使用 Rsync,它允许你在 Git Bash 中运行 Rsync 命令。

  1. 安装 Git for Windows。

  2. 下载 Rsync 并使用 zstd 解压缩它(通过在 Git Bash 中运行命令)。

  3. 将解压缩的文件移动到相应的目标位置。

此方法还提供了一个图形界面工具,该工具具有以下文件同步模式:

  • 文件同步: 实时将源目录中更改的文件同步到目标目录。

  • 文件同步: 始终保持源目录中的文件与目标目录完全相同。

  • 双向同步: 对源目录或目标目录所做的任何更改都将同步到另一侧。

比较不同的 rsync 方案


方案

优点

缺点

易用性

功能

适合

Cygwin

功能强大,与 Linux 环境完全兼容

需要安装额外的环境

中等

完整

熟悉 Linux 命令行的用户

WSL

功能强大,与 Linux 环境完全兼容

需要安装额外的环境

中等

完整

熟悉 Linux 命令行的用户

cwRsync

提供图形界面和命令行界面

第三方实现,可能存在兼容性问题

简单

完整

需要图形界面或希望更易于使用的用户

DeltaCopy

图形界面,简单易用

功能相对较少

简单

基本

初学者或只需要基本功能的用户

Git for Windows

提供图形界面工具和命令行访问

需要安装 Git for Windows

简单/中等

完整

需要图形界面或希望更易于使用的用户

比较不同的 rsync 版本

rsync 有多个版本,每个版本都有不同的功能和特性。 以下是一些值得注意的版本:

  • rsync 3.3.0pre1: 主要包含错误修复,版本号的增加是对最近发生的一些较大变化的延迟反应。

  • rsync 3.2.7: 包含各种错误修复,例如参数验证和过滤规则验证。

  • rsync 3.2.0: 包含许多新功能和各种错误修复。

  • rsync 3.1.3: 包含一些安全修复程序、一些新功能和各种错误修复。

  • rsync 3.1.2: 包含针对来自不受完全信任的发送方的传输的安全修复程序。

  • rsync 2.6.6: 不支持更改传输文件权限等选项。

选择 rsync 版本时,请考虑所需的特性和兼容性要求。

rsync for Windows 的教程和文档

以下是一些 rsync for Windows 的教程和文档资源:

  • cwRsync 官方网站: 提供了一些教程和文档,介绍如何在 Windows 上安装和使用 cwRsync。

  • 其他教程:

rsync for Windows 的用户评价和评论

rsync 在 Windows 上的用户评价褒贬不一。一些用户认为 rsync 在 Windows 上的使用比较复杂,需要一定的学习成本,特别是对于不熟悉 Linux 命令行的用户。 然而,许多用户仍然认为 rsync 是 Windows 上一个很好的文件同步工具,特别是对于熟悉 Linux 命令行的用户。Grsync 是一个基于 rsync 的图形界面工具,一些用户对其评价较高,因为它简化了 rsync 的使用。

rsync 的特定用例

rsync 不仅可以用于一般的文件同步,还可以用于各种特定用例:

  • 备份 Windchill 文件: 使用 rsync 备份 Windchill 文件时,务必保留文件的时间戳,以确保文件完整性。

  • 连接到 rsync 服务器: rsync 客户端可以通过 SSH 或直接连接到 rsync 守护程序来连接到 rsync 服务器。

  • IntelliJ IDEA 中的文件同步: IntelliJ IDEA 使用 rsync 与远程服务器同步文件。

  • 备份 Windows 操作系统: 使用 rsync 备份 Windows 操作系统可能存在局限性,因为简单地将文件复制回去并不能保证 Windows 能够正常工作。

总结

rsync 是一款功能强大的文件同步工具,即使在 Windows 系统上也能发挥其作用。用户可以根据自己的需求和技术水平选择合适的方案。 Cygwin/WSL 提供了完整的 Linux 环境,功能强大,适合熟悉 Linux 命令行的用户;cwRsync 和 DeltaCopy 则更加易于使用,适合需要图形界面或希望更易于使用的用户。建议用户根据自己的实际情况选择合适的方案,并参考相关的教程和文档进行学习。



评论