Linux 中 rsync 命令的 10 个示例

rsync 命令是一个功能强大且多功能的工具,专为 Linux 环境中的高效文件同步而设计。无论您是系统管理员、开发人员还是只是 Linux 爱好者,利用 rsync 命令的功能都可以在很大程度上改进您的工作流程。在本文中,我们将引导您了解如何在 Linux 中使用 rsync 命令的一些实际示例。

如何在Linux系统中安装rsync

在讨论 Linux 中 rsync 命令的示例之前,让我们首先了解如何安装它。使用特定于您的Linux 发行版的命令来安装 rsync:

  • 基于 Debian 的系统:
sudo apt install rsync
  • 基于 CentOS 的系统:
sudo yum install rsync

Rsync Linux 命令语法和选项

rsync 命令的简单语法使其成为各类用户的理想选择。Linux命令中使用rsync命令的语法是:

rsync <options> <source_directory> <destination_directory>

在上面的语法中,<source_directory> 可以位于本地系统或远程主机上。同样,<destination_directory> 也可以位于本地系统或远程系统上。与 rsync 命令配对的一些选项包括:

选项描述
-z发送前压缩文件数据
-r递归搜索目录中丢失的数据
-A切换到存档模式并包括所有必要的选项,例如递归地保留文件权限、符号链接、文件所有权和文件时间戳
-v删除发件人系统上不存在的文件
-删除删除发件人系统上不存在的文件

Linux中rsync命令的实例

抛开这些,让我们看一些如何在 Linux 系统上使用 rsync 命令的示例。

1. 同步本地文件系统上的目录

此场景是 rsync 最常见的用例之一。假设您的系统上有两个重复的文件夹,并且存在一些差异,并且您需要在比较它们之后同步它们。您可以使用 rsync 命令:

rsync <options> <source_directory> <destination_directory>

例如,如果您要同步源文件夹“src_local1”和目标文件夹“dest_local1”:

rsync -a -v src_local1/ dest_local1/

注意:如果需要保留目录内容的权限和所有权,请使用 -p(保留权限)和 -o(保留所有者)。

使用 rsync 复制本地系统中的文件

2. 同步本地文件系统上的文件

就像同步两个目录一样,您也可以使用 rsync 命令同步单个文件。要同步文件,请使用以下语法:

rsync <options> <source_file> <destination_file>

例如,要同步名为 test.txt 的文件,请使用以下命令:

rsync -a -v src_local1/test.txt dest_local1/
syncing a single file using rsync in a local Linux system

3. 将文件和目录从远程系统同步到本地系统

使用 rsync 命令,您甚至可以从本地系统复制/与远程系统同步。使用以下语法从远程系统复制文件:

rsync <options> <remote_username>@<remote_system_ip_address>:<remote_directory> <local_directory>

例如,如果您需要从名为“src_remote”的远程源目录传输到“dest_local”,请使用命令:

rsync -a -v [email protected]:~/src_remote1/ ~/dest_local/
using rsync to copy file from a remote system to a local system

4. 将文件和目录从本地系统同步到远程系统

就像您可以将文件从远程系统复制到本地计算机一样,您也可以使用 rsync 命令将文件从本地系统同步到您有权访问的远程系统:

rsync <options> <local_source> <remote_username>@<remote_destination_ip>:<remote_destination_directory>

例如,要将整个“src_local”本地源目录复制到远程系统中的“dest_remote”目录,请使用以下命令:

rsync -a -v ~/src_local1/ [email protected]:~/dest_remote1/
using rsync to copy file from a local system to a remote Linux system

5. 同步后删除源文件

如果您需要在将源文件与目标同步后删除源文件,请添加 –remove-source-files 标志,如下所示:

rsync <options> --remove-source-files <source_file> <destination_file>

例如,从本地计算机复制到远程系统后删除文件“test.txt”的旧备份:

rsync -a --remove-source-files ~/src_local1/test.txt [email protected]:~/dest_local1/
在本地源系统中复制文件后删除源文件

6. 使用 Rsync 复制/同步时排除或仅包含某些文件/目录

要从同步中排除 rsync 的特定文件/目录,请使用 –exclude 标志,例如:

rsync <options> --exclude="<pattern_to_exclude>" <source> <destination>

要使用 rsync 命令包含某些文件类型,请使用 –include 标志,例如:

rsync <options> --include="<pattern_to_include>" <source> <destination>

例如,要排除所有 .txt 文件并包含 src_local1 目录中的所有 .py 文件:

rsync -a -v --exclude=*.txt --include=*.py ~/src_local1/ [email protected]:~/dest_local1/
只允许使用 rsync 命令复制某些文件类型

7. 设置同步文件大小限制

您甚至可以使用 –max-size 标志限制允许 rsync 命令传输的最大文件大小:

rsync <options> --max-size='<size_limit' <source> <destination>

例如,如果您需要将复制的文件大小限制设置为1GB:

rsync -a -v --max-size='1G' ~/src_local1/ ~/dest_local1/
在 Linux 中使用 rsync 命令设置复制的最大文件大小限制

8. 设置同步带宽限制

如果您所在的网络对网络速度有限制,则可以将 –bwlimit 标志与 rsync 命令一起使用。请务必使用以下语法设置带宽(以 kbps 为单位):

rsync <options> --bwlimit=<bandwith_limit> <source> <destination>

例如,要将带宽设置为 100kbps,您可以使用 rsync 命令:

rsync -a -v --bwlimit='100' ~/src_local1/ ~/dest_local1/
设置 rsync 命令的带宽限制

9. 压缩数据并复制到目的地

有时您的网络状况较差,需要将数据从您的系统发送到不同的目标机器,您可以压缩数据然后发送。这将确保传输的总体数据量较低,即使在低速下也可以工作。要压缩数据,请在 rsync Linux 命令中使用 -z 标志:

rsync <options> -z <source> <destination>

例如,要压缩文件 test.txt 并将其发送到远程目标目录 ~/dest_remote1/:

rsync -a -v -z ~/src_local1/test.txt [email protected]:~/dest_remote1/
使用 rsync 命令压缩文件

注意:在本地系统中传输文件时不要使用 -z 标志,这会使整个操作非常慢。

10. 显示当前传输进度

有时,在使用 rsync Linux 命令传输大文件时,您只能看到一个闪烁的光标,这让您不知道实际发生了什么。要显示当前传输的进度条,请在 rsync 命令中使用 –progress 标志:

rsync -a --progress ~/src_local1/ ~/dest_local1/
向 rsync 命令添加进度条

Rsync Linux 命令不起作用?怎么修!

当您需要使用 rsync 命令传输某些文件并遇到一些错误时,这是​​令人沮丧的。好吧,这里有一些常见的故障排除提示,用于修复 rsync 命令不起作用的问题:

1. 未找到rsync命令

有时,您可能会在 Linux 系统上遇到 rsync 命令未找到错误。这可能是由于错误安装了 rsync 软件包所致,因此请确保您的 Linux 系统已安装 rsync。如果没有,请使用适当的命令在您的发行版上安装 rsync 包。

2. 权限被拒绝

通常,当您尝试写入没有写入权限的目录时,会出现此错误。

3. rsync设置时间失败

当源计算机和目标计算机上的文件和目录的修改时间不同时,就会出现此类错误。这会导致修改时间冲突并最终导致错误。

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注