50% off 所有套餐限时优惠,起价 $2.48/mo
10 min left
Security & Networking

如何在 Linux 中使用 Rsync?Rsync 到远程服务器 💻📥

Lily Carnell By Lily Carnell 10 min read Updated Apr 16, 2023
远程服务器 rsync

无论你是管理员还是普通用户,都很可能需要定期备份文件或在多个系统间同步。如果每次都要覆盖全部文件,这会很耗时且令人厌烦。这正是 Linux Rsync 远程服务器工具的用武之地。本指南将带你了解最实用的 Rsync 命令,让你能充分发挥它快速和安全的特性。

Rsync 实用工具是什么?

远程同步 (Rsync) 是一个众所周知的 Linux/Unix 命令,用于通过远程访问或本地复制和同步文件及目录。使用 Rsync 命令可以执行各种数据相关任务,如同步、复制和备份。此外,你可以将 Linux 系统镜像到另一个系统。

使用 Rsync 连接到远程服务器的核心优势在于它的快速文件传输能力。它只同步源文件和目标文件之间的差异,而不是重新传输整个数据集。这意味着用 Rsync 命令可以避免盲目传输数据浪费的时间,因为它只处理两个 Linux 系统之间的差异部分。

为什么要使用 Rsync?

你可能已经知道,市面上有很多备份工具可以选择。关键问题是,Rsync 相比其他工具或命令有什么独特之处?

比如,你可以使用 文件传输协议 (FTP) 在本地保存您网站的副本,或者 SCP (安全复制协议) 对于此任务,这两种方法都有缺点。FTP 不包含数据加密,这不是我们想要的。虽然 SCP 没有 FTP 那样的未加密传输问题,但它需要建立隧道,传输时间更长。

作为解决这些问题的替代方案,我们可以使用 Rsync 通过基于密钥的加密连接到远程服务器(简称 Rsync SSH 或 Rsync over SSH)。这种方法防止重复数据传输,并使用 SSH 密钥。需要注意的是,Rsync 在发送和接收数据时采用压缩和解压缩,可以降低带宽使用。

如何安装 Rsync?

你的系统上可能已经安装了 Rsync,不过我们来详细了解一下。在开始之前,请注意 SSH 必须已经安装在源系统和目标系统上,因为我们要使用 Rsync over SSH。

步骤 1:检查 SSH 版本

你可以使用以下命令检查 SSH 的版本:

ssh -V

要使用 Rsync 连接到远程服务器,你需要有一个本地服务器(即源服务器)和一个远程服务器。你还需要确保本地服务器拥有管理员权限 (sudo)。

步骤 2:安装 Rsync Linux

以下命令可以在 Ubuntu、Linux Mint 和 Debian 上安装 Rsync:

sudo apt install rsync -y

如果你使用其他 Linux 发行版,如 Fedora、CentOS、AlmaLinux 和 Red Hat,请输入以下命令在你的系统上安装 Rsync 远程服务器服务:

sudo dnf install rsync

注意:apt 是一个实用的包安装工具,用于基于 Debian 的发行版。

步骤 3:启动 Rsync

现在你需要使用以下命令启动并启用 Rsync:

sudo systemctl start rsync 
sudo systemctl enable rsync

步骤 4:验证 Rsync 安装

输入以下命令以确认是否正确安装了 Rsync,以及查看你的 Linux 系统上使用的版本:

rsync --version

接下来,我们将讨论如何使用此工具通过基于密钥的身份验证进行备份。

如何使用 Rsync over SSH 创建备份?

增量备份是 Rsync over SSH 的一个主要用途。请注意以下命令以了解其工作原理:

rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir

运行上述命令将帮助你同步 sourceDir and destinationDir。此命令包含其他你应该熟悉的选项,如 -a (archive) and -v (verbose). Note that -e ssh 选项要求 Rsync 连接使用 SSH 协议。

如果你想将 SSH connection 接受到默认端口 (22) 以外的端口上,你需要在 -e ssh. 后面指定端口号。请查看以下命令了解其工作原理。

rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir

在上面的命令中,我们假设要使用 1998 作为 SSH 端口,而不是 22。

通过 SSH 将文件同步到远程服务器有其他一些实用的选项。比如使用 –partial 选项可以让你在出现 Rsync 中断等问题时继续之前未完成的传输。你也可以通过 –progress 选项查看当前文件传输的进度。另外,Linux Rsync 远程服务器工具让你可以同时使用这两个功能。要这样做,你可以在命令行中使用 -p 标志。

rsync -avP  -e ssh /sourceDir/ user@remote:/path/to/destinationDir

使用密钥命令的 Rsync 远程服务器工具可以在传输前压缩数据。虽然压缩会占用你的 CPU 资源,但这仍然很有帮助,因为它能加快文件传输速度,降低带宽占用。

你可以用 Rsync 命令复制文件和目录,无论是远程还是本地。Rsync 的主要优势在于它采用 差异传输算法,这能避免从源复制重复数据到目标。如前所述,Rsync 远程服务器工具的这一特性在处理日常备份和系统镜像时很有帮助。有了这个认识,让我们开始使用 Rsync 命令处理本地场景。

如何在本地使用 Rsync 同步?

在深入了解本地同步及如何使用 Rsync 命令之前,你应该知道本地 Rsync 的基本结构,如下所示:

rsync [options] [Source] [Destination]

本地复制文件

假设我们要从桌面目录(称为 Cloudzy) to /home/Public 的文件夹)同步或复制一个文件。以下是你需要输入的内容:

rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public

上面的 Rsync 命令包含三个选项 -zvh; by using -z,你的文件在传输过程中会被压缩。 v option 表示详细输出, h option 则帮助我们以人类可读的方式显示输出。

本地复制目录

如果我们要复制桌面目录(称为 Cloudzy) to /home/Public 的文件夹),你需要输入下面的命令:

rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public

The -a 此命令中的选项会在同步时存档目录和文件。

你可以快速查看目标文件夹的目录列表,验证目录是否已被复制。要这样做,使用下面的命令:

ls -ld /home/Public

递归本地同步文件和目录(递归 Rsync)

如果 /desktop/Cloudzy中有多个目录和文件,你想通过 Linux Rsync 命令递归地复制它们,该怎么办?

在这种情况下,你可以使用 -r option 递归同步本地文件和目录。您也可以使用 archive option (-a) 因为它还有其他用途,比如递归复制。请查看下面的命令,以熟悉 Rsync 递归命令的用法。

rsync -zrvh /desktop/Cloudzy /home/Public

Or

rsync -zrvh /desktop/Cloudzy /home/Public

从本地系统复制目录和文件到远程服务器

除了我们在前面章节提到的 Linux Rsync 远程服务器特性外,这个常用命令还支持将本地机器的文件和目录同步到远程系统。

假设我们要复制一个文件夹 (/desktop/Cloudzy/newfolder) 从本地机器到远程系统 (with 192.168.1.79) under /mycpt;以下是一个工作原理的示例:

rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt

如何使用 Rsync 复制目录但不复制其中的文件?

在某些情况下,我们可能需要使用 Linux Rsync 远程服务器功能来复制目录(不包括文件);这种同步可以从远程机器到本地系统,也可以反向进行。

在本文中,我们一直在使用位于 192.168.1.79. 假设我们已经掌握了 /mycpt 文件夹,需要复制 /desktop/Cloudzy 来自本地系统的目录,但不包括其文件。请运行以下命令:

rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/

其他有用的 Rsync 命令

我们来看一些实用的 Linux Rsync 命令。

确定 Rsync 文件传输的最大大小

使用 Rsync 命令可以限制文件传输大小。当你需要定期向远程服务器同步文件,而本地机器的带宽和时间有限制时,这个功能特别有用。看下面的命令示例,学习如何为 Rsync 文件传输设置大小限制:

rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public

确定 Rsync 文件传输的最小文件大小

就像为文件传输设置最大大小一样,你可以通过 Rsync 远程服务器工具确定要传输的文件最小大小。在下面的命令中,我们将最小文件大小设置为 10k:

rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public

同步完成后删除源文件

使用 Rsync 命令完成文件同步后,源系统上的文件可能就不需要保留了。这时可以用下面的 Linux Rsync 命令从源系统中删除这些文件:

rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public

试运行同步

如果你是第一次使用 Linux Rsync 工具,对它的选项不太熟悉的话, dry run 是正确的做法。当你用 Rsync 的演练模式时,它不会修改任何文件,只会向你显示命令的输出。确认想要执行该命令后,可以移除 –dry-run 选项,然后在终端中执行。查看下面的命令,深入了解演练模式的功能。

rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public

总结:使用 Linux Rsync 命令

本文介绍了如何使用 Linux Rsync 进行远程服务器传输(和本地服务器传输)的各种应用场景,包括 system mirroring、创建文件备份,以及在本地和远程高效地复制文件和目录。这个广为人知的 Linux 命令让你能够获得快速文件传输的优势,同时可以利用 SSH 和数据压缩。

Linux VPS 托管

选择经济版或高级 Linux VPS 来托管网站或远程桌面,价格最低。VPS 运行在 Linux KVM 上,效率更高,采用强大硬件和 NVMe SSD 存储,速度更快。

Read More

你可以通过从 Cloudzy 获取 Linux VPS 方案来充分利用这个操作系统,该方案为你提供基于 KVM 的虚拟主机计划。我们为你提供高性能的 VPS 服务,拥有 99.95% 的正常运行时间、稳定性、低延迟、遍布全球的数据中心(12 个位置)、超快速 SSD 存储和 24/7 技术支持。你可以从仅需 $4.95 的 Linux VPS 开始使用,如果需要更强大的方案也可以随时升级。

FAQ

Rsync 使用哪个 TCP 端口?

SSH 默认使用 22 端口。因此,当通过 SSH 使用 rsync 时,它将在这个特定端口上运行。而在使用 Rsync 守护进程时,将使用 873 端口。

What is Rsync?

Rsync 是一个 Linux 实用工具,可以在本地或远程同步文件和目录。使用 Rsync 命令可以执行各种数据相关的任务,例如同步、复制和备份。

Share

博客更新

Keep reading.

MikroTik L2TP VPN 指南的 Cloudzy 标题图像,展示笔记本电脑通过发光的蓝色和金色数字隧道连接到服务器机架,并配有盾牌图标。
Security & Networking

MikroTik L2TP VPN 设置(含 IPsec):RouterOS 指南(2026)

在这个 MikroTik L2TP VPN 设置中,L2TP 处理隧道,IPsec 处理加密和完整性验证。将两者结合使用可以获得原生客户端兼容性,无需第三方工具。

Rexa CyrusRexa Cyrus 9 min read
终端窗口显示 SSH 警告信息,提示远程主机标识已更改。深蓝绿色背景上显示修复指南标题和 Cloudzy 品牌标识。
Security & Networking

警告:远程主机标识已更改及修复方法

SSH 是一种安全网络协议,可在系统之间创建加密隧道。在需要远程访问计算机但无需图形界面的开发者中仍然广泛使用。

Rexa CyrusRexa Cyrus 10 min read
DNS 服务器故障排查指南插图,深色背景上显示警告符号和蓝色服务器,用于 Linux 名称解析错误。
Security & Networking

名称解析临时失败:含义和修复方法?

使用 Linux 时,在尝试访问网站、更新软件包或执行需要网络连接的任务时,可能会遇到名称解析临时失败错误。

Rexa CyrusRexa Cyrus 12 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。