如何使用 rsync 命令在本地和通过 SSH 复制数据

将文件从一个位置复制到另一个位置是一项非常基本的任务,可以使用 cp 命令轻松实现。 但是,有时,您必须多做一点。 这是 rsync 命令的用武之地,尤其是在您传输较大文件时。 Rsync(远程同步)是一个基于 Linux 的命令行工具,可用于在本地和远程服务器之间同步和复制文件。 它允许在同一台计算机上的两个目录之间、同一网络上两台不同计算机的目录之间、远程系统上的两个目录之间同步文件。

rsync 的主要优点是它不是盲目地复制整个内容,而是仅分析和传输源和目标之间的差异,从而可能节省系统资源和带宽。 rsync 的其他一些优点如下:

  • 传输前压缩文件
  • 传输数据时可以查看进度条
  • 复制过程可以暂停并稍后恢复
  • 允许通过 SSH 连接传输

在本文中,我们将解释如何在 Linux 中使用 rsync 复制数据。 我们将使用 Debian 10 来描述本文中提到的过程。

Rsync 的安装

默认情况下,大多数 Linux 操作系统都安装了 Rsync。 但是,如果未安装,则可以按照以下步骤进行安装:

进入系统中的终端应用程序 活动 Debian 桌面左上角的选项卡。 然后在搜索栏中输入 终端. 当终端图标出现时,单击它以启动它。

现在在终端中执行以下命令来安装 rsync 实用程序:

$ apt install rsync

使用 Rsync

每个 rsync 命令都以 同步 后跟一个选项,您可以在其中指定各种参数。 Rsync 提供了许多选项,让您可以控制来塑造传输规范。 然后有一个源和目标取决于它们是远程机器还是本地机器。

rsync 的基本语法是:

$ rsync [option] [source] [destination]

与 rsync 命令一起使用的一些常规选项:

  1. -v : 冗长
  2. -一个 : 归档模式,它允许递归复制文件并保留符号链接、文件权限、用户和组所有权和时间戳
  3. -和 : 压缩数据
  4. -H : 人类可读的,它以人类可读的格式输出数字
  5. –最大尺寸=SIZE,以指定的最小 SIZE 传输文件
  6. –最小尺寸=SIZE,传输指定最大SIZE的文件

现在我们将解释一些使用 rsync 和这些选项的示例。

将文件和目录复制到本地服务器

本地复制文件

您可以将单个或多个文件从源目录复制到同一台机器上的目标目录。 该示例是复制所有 .jpg 文件来自 ~/下载 目录到 〜/文件 目录使用以下命令:

$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents

运行上述命令后,所有 .jpg 源目录中的文件 /home/tin/下载 将被复制到目标目录 /家/锡/文件.

在上面的例子中,我们使用了类似的选项 -和 用于压缩, -v 对于详细输出和 -H 用于人类可读的输出。

本地复制目录

与文件类似,您也可以使用 rsync 命令复制整个文件夹和目录中包含的文件。 一个例子是复制所有文件 ~/下载 目录到 〜/文件 目录使用以下命令:

$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents

将文件复制到远程服务器

您可以将单个或多个文件从源目录复制到远程计算机上的目标目录。 例如,要将文件从本地复制到远程计算机,请使用以下命令语法:

$ rsync [options] [local path] [user]@[remote server]:[remote path]

根据最大大小复制文件

您还可以指定可以使用 rsync 从源复制到目标的文件的最大大小。 为此,请使用以下命令语法:

$ rsync --max-size=”” [source] [destination]

一个例子是从源复制最大大小为 4000K 的文件 ~/下载 到目的地 〜/文件 目录。 在这种情况下,大于 4000k 的文件将不会被复制到目的地。

$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/

使用 rsync 复制文件时限制文件大小

根据最小大小复制文件

同样,您还可以指定可以使用 rsync 从源复制到目标的最小大小。 为此,请使用以下命令语法:

$ rsync --min-size=”” [source] [destination]

一个例子是从源复制最大大小为 2M 的文件 ~/下载 到目的地 〜/文件 目录。 大小小于 2M 的文件将不会使用 rsync 进行复制。

$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/

根据最小大小复制文件

查看进度

您还可以在使用 rsync 复制文件时查看进度。 添加 -进步 rsync 命令后面的标志,如下所示:

$ rsync --progress [source] [destination]

一个例子是在从源复制文件时查看进度 ~/下载 到目的地 〜/文件 目录:

$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents

在 rsync 中查看复制进度

排除文件

您还可以在使用 rsync 将文件从源复制到目标时排除某些文件。 一个例子是在从源复制文件时排除所有 .pdf 文件 ~/下载 到目的地 〜/文件 目录。

rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents

排除文件被 rsync 复制

通过输入以下命令,所有文件都将从源复制到目标,除了 .pdf 文件。

这就是全部! 我们已经解释了 rsync 实用程序在本地和远程不同目录之间复制文件的基本用法。 我们还解释了一些常见且有用的 rync 选项。 除了这些之外,还有很多选项可以用来控制传输行为的各个方面。 要使用这些选项,请参阅 rsync 手册页。