网站搜索

如何在 Linux 中使用 Rsync 同步新文件或更改/修改的文件


作为系统管理员或 Linux 高级用户,您可能遇到过甚至多次使用过多功能 Linux Rsync 工具,该工具使用户能够在本地和远程快速复制或同步文件。它也是一个广泛用于备份操作和镜像的出色工具。

它的一些显着特点和优势包括:它的用途非常广泛,因为它可以在本地复制到远程 shell 或远程 rsync,或者从远程 shell 或远程 rsync 复制,它也非常灵活,允许用户指定要复制的任意数量的文件。

建议阅读: Linux 中 Rsync 命令的 10 个实用示例

此外,它还允许复制链接、设备、文件或目录所有者、组和权限。它还支持在没有 root 权限的情况下使用以及更多。

与 Linux 中的其他文件复制命令相比,rsync 的一个重要区别是它使用远程更新协议,仅传输文件或目录内容之间的差异。

因此,在本文中,我们将研究 rsync 如何帮助我们在 Linux 中进行备份等时仅同步新的或更改的文件或目录内容。

首先,您需要记住使用 rsync 的传统且最简单的形式如下:

rsync options source destination 

也就是说,让我们深入研究一些示例,以揭示上述概念的实际工作原理。

使用 Rsync 在本地同步文件

使用下面的命令,能够将文件从我的 Documents 目录复制到本地的 /tmp/documents 目录:

rsync -av Documents/* /tmp/documents

在上面的命令中,选项:

  1. -a – 表示存档模式
  2. -v – 表示详细,显示正在进行的操作的详细信息

默认情况下,rsync 仅将新文件或更改的文件从源复制到目标,当我将新文件添加到我的 Documents 目录中时,这就是运行相同命令后发生的情况第二次:

rsync -av Documents/* /tmp/documents

正如您可以从命令的输出中观察到的那样,只有新文件被复制到目标目录。

建议阅读: 如何使用 Rsync 同步两个 Apache Web 服务器/网站

--update-u 选项允许 rsync 跳过目标目录中仍然是新的文件,并且一个重要的选项 --dry-run-n 使我们能够在不进行任何更改的情况下执行测试操作。它向我们展示了要复制哪些文件。

rsync -aunv Documents/* /tmp/documents

执行测试运行后,我们可以去掉 -n 并执行实际操作:

rsync -auv Documents/* /tmp/documents

将文件从本地同步到远程 Linux

在下面的示例中,我将文件从本地计算机复制到 IP 地址为 10.42.1.5 的远程服务器。为了仅同步本地计算机上远程计算机上不存在的新文件,我们可以包含 --ignore-existing 选项:

rsync -av --ignore-existing Documents/* [email :~/all/

随后,为了仅同步远程计算机上已在本地计算机上更改的更新或修改的文件,我们可以在复制文件之前执行试运行,如下所示:

rsync -av --dry-run --update Documents/* [email :~/all/
rsync -av --update Documents/* [email :~/all/

为了更新现有文件并防止在目标中创建新文件,我们使用 --existing 选项。

您可以运行man rsync页面来发现其他有用的高级使用选项,正如我之前提到的,rsync是一个非常强大和通用的Linux工具,许多系统管理员和 Linux 高级用户都知道它有多么有利。

最重要的是,您也可以分享您对我们在此介绍的示例的看法,或者更好的是,通过下面的评论部分向我们提供有关使用这个重要命令行工具的宝贵提示。