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

将文件从一个位置复制到另一位置是一项非常基本的任务,可以使用cp命令轻松执行。但是,在某些情况下,您需要做更多的事情。这是rsync命令出现的地方,尤其是在传输大文件时。 Rsync(远程同步)是基于Linux的命令行工具,可用于在本地和远程服务器之间同步和复制文件。您可以在同一台计算机上的两个目录之间,同一网络上两台不同计算机上的目录之间以及远程系统上的两个目录之间同步文件。

rsync的主要优点是,它不会盲目复制整个内容,而只是分析和传输源和目标之间的差异,从而节省了系统资源和带宽。 rsync的其他优点包括:

  • 传输前先压缩文件
  • 在数据传输过程中显示进度条
  • 复制过程可以暂停并稍后恢复
  • 允许通过SSH连接进行传输

本文介绍如何使用rsync在Linux上复制数据。我们将使用Debian 10来说明本文提到的步骤。

安装Rsync

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

转到并在系统上启动终端应用程序 活动活动 标签在Debian桌面的左上角。然后在搜索栏中输入以下内容 航站楼。当终端图标出现时,单击它以启动。

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

$ apt install rsync

使用Rsync

所有rsync命令都是 同步 随后是允许您指定各种参数的选项。 Rsync具有许多选项,可提供控制以调整传输规范。接下来,根据源是远程计算机还是本地计算机,有源和目标。

rsync的基本语法如下:

$ rsync [option] [source] [destination]

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

  1. -v :详细
  2. -一个 :存档模式。递归复制文件,保留符号链接,文件许可权,用户和组所有权以及时间戳。
  3. -z :压缩数据
  4. -h :以人类可读格式和人类可读格式输出数值
  5. -最大大小=SIZE,以指定的最小大小传输文件
  6. –最小尺寸=SIZE,传输指定最大大小的文件

以下是将rsync与这些选项一起使用的一些示例。

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

本地复制文件

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

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

运行以上命令后,全部 .jpg 源目录中的文件 /主页/ tin /下载 将复制到目标目录/主页/锡/文件

在上面的示例中,我们使用了以下选项 -z 对于压缩, -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手册页。

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

Sidebar