Rsync命令用法指南:Linux中的20个有用示例

2021年11月22日18:09:26 发表评论 1,313 次浏览

Rsync命令用法指南介绍

Rsync 或远程同步,是一种免费的命令行工具,可让你将文件和目录传输到本地和远程目标。Rsync 用于镜像、执行备份或将数据迁移到其他服务器。

此工具快速高效,仅复制源中的更改并提供自定义选项。

Linux如何使用Rsync命令按照本教程学习如何使用 rsync 和 20 个命令示例来涵盖 Linux 中的大多数用例。

先决条件

  • 具有sudoroot权限的用户
  • 访问终端/命令行
  • 远程 rsync 示例的 SSH 访问

Rsync 命令语法

rsync命令的语法根据工具的使用而变化。我们将在以下示例中涵盖所有场景。最基本形式的 Rsync 语法如下所示:

rsync options SOURCE DESTINATION

远程数据传输要求你指定主机地址,稍后会详细介绍。

Rsync选项

rsync 工具带有许多选项。你可以rsync 在终端中输入并获取所有详细信息。我们将列出一些最常见的 rsync 选项。

这些包括:

-r允许递归同步数据,但不保留用户和组的所有权、权限、时间戳或符号链接。
-a归档模式的行为类似于递归模式,但保留所有文件权限、符号链接、文件所有权等。
-z用于在传输过程中压缩数据以节省空间。
-b在数据同步期间执行备份。
-h以人类可读的格式显示输出中的数字。
-n进行试运行。用于在实际同步发生之前进行测试。
-e指示 rsync 使用 SSH 协议进行远程传输。
-progress显示同步期间的传输进度。
-v详细输出。显示传输的详细信息。
-q用于抑制 rsync 命令和选项的输出。

Rsync 命令示例

Rsync 是一种多功能同步工具,你可以对其进行自定义以适合你的特定用途。在本指南中,我们将在需要时使用存档-a)详细-v)选项。

请参阅下面的 rsync 示例以涵盖大部分 rsync 用法。

注意:同步目录时,请注意如何在源路径中使用尾部斜杠。小径起着重要的作用。如果在源上输入尾部斜杠,则该rsync命令不会在目标上创建源文件夹;它只复制目录的文件。当你不使用尾部斜杠时,rsync 还会在目标目录中创建原始目录。

1.本地复制单个文件

Linux如何使用Rsync命令?要将一个文件复制到本地机器上的另一个目录,请输入源文件的完整路径,然后是目标目的地。

例如:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/rsync/
Rsync命令用法指南:Linux中的20个有用示例

该命令将sample.txt文件传输到rsync目录。如果目标目录不存在,请在末尾添加一个斜杠,rsync 将创建它,就像我们的示例中的情况。

如果要从当前工作目录复制文件,可以输入文件名,而不是完整路径。

2.本地复制多个文件

Rsync命令用法指南:要使用 rsync 复制多个文件,请添加源文件的完整路径:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/sample2rs.txt /home/test/Desktop/rsync

你应该对少量文件使用此方法。如果列表较大,你可以参考--exclude 选项。

3.本地复制一个目录和所有子目录(递归复制文件和目录)

Rsync命令用法示例:要将目录及其内容复制到机器上的另一个位置,请使用-a-r选项。我们使用了存档 选项

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync
Rsync命令用法指南:Linux中的20个有用示例

上面的例子展示了如何将Linux目录复制到rsync目录。请注意,我们没有在Linux之后使用尾部斜杠。因此,rsync 工具在rsync目录中创建了Linux目录及其内容。

4. 将文件或目录从本地复制到远程机器

要复制目录的/ home /测试/桌面/ Linux的的/ home /测试/桌面/ rsync的远程机器上,你需要指定目的地的IP地址。

在源目录后添加 IP 地址和目标。请记住:在远程主机的 IP 地址后放置一个冒号 ( ),目标前没有空格。

该命令如下所示:

rsync -av /home/test/Desktop/Linux 192.168.56.100:/home/test/Desktop/rsync
Rsync命令用法指南:Linux中的20个有用示例

输入当前用户的密码以继续。如果要使用其他帐户进行远程连接,请在 IP 地址前指定:

rsync -a /home/test/Desktop/Linux jay@192.168.56.100:/home/test/Desktop/rsync

要将单个文件复制到远程主机,请指定文件的完整路径和目标。

例如:

rsync -av /home/test/Desktop/sample_file.txt 192.168.56.100:/home/test/Desktop/rsync

5. 将多个文件或目录从本地复制到远程机器

类似于在本地复制数据,列出要复制到远程服务器的多个文件或多个目录路径。遵循与复制单个文件或目录相同的语法。

例如:

rsync -av /home/test/Desktop/Linux/ /home/test/Music 192.168.56.100:/home/test/Desktop/rsync
Rsync命令用法指南:Linux中的20个有用示例

6. 为远程传输指定 rsync 协议

Rsync命令用法指南:可以通过-e选项指示 rsync 工具使用特定协议进行文件传输。要通过 SSH使用Rsync 远程传输文件,请附加-e ssh rsync命令。

例如,要将sample.txt从你的桌面传输到远程计算机的桌面:

rsync -e ssh /home/test/Desktop/sample.txt 192.168.56.100:/home/test/Desktop

7. 将文件或目录从远程复制到本地机器

Rsync 支持将文件从远程服务器传输到本地计算机。

Rsync命令用法示例:要从服务器拉取目录,请在源之前指定其 IP 地址。

例如:

rsync -av 192.168.56.100:/home/test/Desktop/DirM /home/test/Desktop
Rsync命令用法指南:Linux中的20个有用示例

此命令将DirM目录从 192.168.56.100复制到本地服务器上的/home/test/Desktop

要从远程主机复制特定文件,请输入源文件的完整路径和本地计算机上的目标。例如:

rsync -v 192.168.56.100:/home/test/Desktop/testfile.txt /home/test/Desktop

8. 将多个文件或目录从本地复制到远程机器

Linux如何使用Rsync命令?要从远程服务器传输多个文件或多个目录,请在服务器的 IP 地址后使用大括号列出路径。用逗号分隔路径。

例如:

rsync -av 192.168.56.100:{/home/test/Desktop/DirM,/home/test/Desktop/Dir1} /home/test/rsync
Rsync命令用法指南:Linux中的20个有用示例

文件也是如此。在大括号内列出你需要的尽可能多的文件。

9. 在数据传输期间显示 rsync 进度

执行大数据备份时,你可能希望查看传输进度。

--progressrsync命令中添加标志以查看传输的数据量、传输速度和剩余时间。

例如,要将Dir1备份到远程服务器并显示进度,请输入:

rsync -av --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync
Rsync命令用法指南:Linux中的20个有用示例

10. 从目标中删除不存在的源文件或目录

使用该--delete选项使源和目标保持同步。

这个选项告诉 rsync 删除目标上的任何文件或目录,如果源没有它。

rsync -av --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync
Rsync命令用法指南:Linux中的20个有用示例

11. 传输后删除源文件

在某些情况下,你可能希望在传输后删除源文件。例如,你可能要将每周备份移动到新服务器。传输完成后,你不再需要旧服务器上的源文件。

在这种情况下,请使用该--remove-source-files标志删除你指定的源文件。

例如,此命令传输备份文件 weekly.zip,然后从源中删除它:

rsync -v --remove-source-files /home/test/backup/weekly.zip 192.168.56.100:/home/test/Desktop/rsync/

12. Rsync 试运行

Rsync 是一个强大的同步工具。由于此工具允许你复制和删除数据,因此我们建议你先进行试运行以测试 rsync 是否符合你的预期。

Rsync命令用法示例:当你要删除文件时,试运行选项特别有用。要进行试运行,请使用该--dry-run 选项并遵循常规 rsync 语法。

例如:

rsync -av --dry-run --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync
Rsync命令用法指南:Linux中的20个有用示例

输出看起来与你实际同步文件时相同。但是,这次不会同步数据。为了确认测试发生而不是实际传输,终端在底部显示 (DRY RUN)。

13. 设置传输的最大文件大小

要确定 rsync 将传输的最大文件大小,请使用--max-size=add_size.

例如,要传输不大于 500KB 的文件,请使用以下命令:

rsync -av --max-size=500k /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

14. 设置传输的最小文件大小

Linux如何使用Rsync命令?--min-size=add_size当你不想传输小于指定大小的文件时,请与 rsync 一起使用。此选项很有用,例如,当你想要跳过小日志或缩略图文件时。

要跳过任何小于 10KB 的文件,请运行以下命令:

rsync -av --min-size=10k /home/test/Desktop/ 192.168.56.100:/home/test/Desktop/rsync/

15.设置rsync带宽限制

Rsync命令用法指南:如果要确定机器之间数据传输期间的带宽限制,请使用--bwlimit=KB/s

当你不想阻塞网络吞吐量时,此选项很有用。

要将最大传输速度设置为 50KB/s,请输入:

rsync -av --bwlimit=50 --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/
Rsync命令用法指南:Linux中的20个有用示例

我们还使用--progress 选项来演示--bwlimit.

16. 复制特定文件类型

你可以使用 rsync 仅复制特定文件类型。为此,请使用星号 ( *) 代替文件名并添加扩展名。

例如,要仅复制 .txt 文件,请输入:

rsync -v /home/test/Documents/*.txt /home/test/Desktop/rsync/

rsync命令将所有文本文件从Documents目录传输到桌面上的rsync目录。

17.复制目录结构但跳过文件

如果你不需要其他位置的文件,Rsync 允许你仅传输目录结构。

为此,请-f"+ */" -f"- *"在源目录之前添加。

例如,要将Linux目录的结构复制到Documents,请输入:

rsync -av -f"+ */" -f"- *"  /home/test/Desktop/Linux /home/test/Documents
Rsync命令用法指南:Linux中的20个有用示例

18. 添加日期戳到目录名称

如果你想在传输中添加日期戳,你可以轻松地向目录名称添加日期。

附加$(date +%Y-%m-%d)到你要创建的目标目录名称。当你想在不打开目录属性的情况下跟踪传输发生的时间时,此选项很有用。

例如:

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +%Y-%m-%d)
Rsync命令用法指南:Linux中的20个有用示例

19.如果修改了相同的目标文件,请勿复制源文件

如果你保持两个目录同步,并且目标文件中存在相同的文件,则 rsync 不会复制文件。

有时可能会发生你在目的地修改文件并且不想让 rsync 覆盖它的情况。

为避免覆盖修改后的目标文件,请使用该-u 选项。

Rsync命令用法示例 - 例如:

rsync -avu /home/test/Desktop/Linux/ /home/test/Desktop/rsync

20. 显示源文件和目标文件之间的差异

Linux如何使用Rsync命令?当你开始传输数据时,你可以使用-i带有 rsync的标志来检查源和目标之间是否存在差异。

例如:

rsync -avi /home/test/Desktop/Linux/ /home/test/Desktop/rsync
Rsync命令用法指南:Linux中的20个有用示例

上面的示例显示目标处缺少sample2rs.txt文件。

输出中可能的字母是:

  • f代表文件
  • d显示目标文件有问题
  • t显示时间戳已更改
  • s显示大小已更改

Rsync命令用法指南结论

本指南提供了 20 个 rsync 命令的示例。如果你按照本教程进行操作,你将成功地使用 rsync 在本地和远程位置传输文件和目录。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: