无论你是管理员还是普通用户,都很可能需要定期备份文件或在多个系统间同步。如果每次都要覆盖全部文件,这会很耗时且令人厌烦。这正是 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 和 destinationDir。此命令包含其他你应该熟悉的选项,如 -a (archive) 和 -v (verbose)请注意 -e ssh 选项要求 Rsync 连接使用 SSH 协议。
如果你想将 SSH 连接 接受到默认端口 (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) 到 /home/Public 的文件夹)同步或复制一个文件。以下是你需要输入的内容:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
上面的 Rsync 命令包含三个选项 -zvh;通过使用 -z,你的文件在传输过程中会被压缩。 v 选项 表示详细输出, h 选项 则帮助我们以人类可读的方式显示输出。
本地复制目录
如果我们要复制桌面目录(称为 Cloudzy) 到 /home/Public 的文件夹),你需要输入下面的命令:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
那位 -a 此命令中的选项会在同步时存档目录和文件。
你可以快速查看目标文件夹的目录列表,验证目录是否已被复制。要这样做,使用下面的命令:
ls -ld /home/Public
递归本地同步文件和目录(递归 Rsync)
如果 /desktop/Cloudzy中有多个目录和文件,你想通过 Linux Rsync 命令递归地复制它们,该怎么办?
在这种情况下,你可以使用 -r 选项 递归同步本地文件和目录。您也可以使用 归档选项 (-a) 因为它还有其他用途,比如递归复制。请查看下面的命令,以熟悉 Rsync 递归命令的用法。
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
从本地系统复制目录和文件到远程服务器
除了我们在前面章节提到的 Linux Rsync 远程服务器特性外,这个常用命令还支持将本地机器的文件和目录同步到远程系统。
假设我们要复制一个文件夹 (/desktop/Cloudzy/新建文件夹) 从本地机器到远程系统 (带 IP: 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 工具,对它的选项不太熟悉的话, 试运行 是正确的做法。当你用 Rsync 的演练模式时,它不会修改任何文件,只会向你显示命令的输出。确认想要执行该命令后,可以移除 –dry-run 选项,然后在终端中执行。查看下面的命令,深入了解演练模式的功能。
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
总结:使用 Linux Rsync 命令
本文介绍了如何使用 Linux Rsync 进行远程服务器传输(和本地服务器传输)的各种应用场景,包括 系统镜像、创建文件备份,以及在本地和远程高效地复制文件和目录。这个广为人知的 Linux 命令让你能够获得快速文件传输的优势,同时可以利用 SSH 和数据压缩。
在拥有 root 权限、NVMe 与 AMD EPYC 强大性能的 Linux VPS 上构建应用。
查看 Linux 套餐你可以通过从 Cloudzy 获取 Linux VPS 方案来充分利用这个操作系统,该方案为你提供基于 KVM 的虚拟主机计划。我们为你提供高性能的 VPS 服务,拥有 99.95% 的正常运行时间、稳定性、低延迟、遍布全球的数据中心(12 个位置)、超快速 SSD 存储和 24/7 技术支持。你可以从仅需 $4.95 的 Linux VPS 开始使用,如果需要更强大的方案也可以随时升级。
常见问题
Rsync 使用哪个 TCP 端口?
SSH 默认使用 22 端口。因此,当通过 SSH 使用 rsync 时,它将在这个特定端口上运行。而在使用 Rsync 守护进程时,将使用 873 端口。
Rsync是什么?
Rsync 是一个 Linux 实用工具,可以在本地或远程同步文件和目录。使用 Rsync 命令可以执行各种数据相关的任务,例如同步、复制和备份。