在 Linux 中使用 rsync 命令进行远程备份和同步

[ad_1]

Linux 中的 rsync 命令主要用于在本地或与远程机器同步您机器上的文件。 当您的工作从多个位置或不仅仅是一台机器上执行时,同步文件将非常有用。

值得庆幸的是,我们在 Linux 中有 rsync 命令可以通过自动化我们的任务来帮助我们。 这是一个多功能且快速的 Linux 文件复制实用程序。 它使用远程 shell,例如 ssh 和 rsh。 或者,它甚至可以在 rsync 守护程序的帮助下通过 TCP 同步文件。

分解 rsync 命令

Linux 中的 rsync 命令使用一个特殊的 ‘增量传输算法‘ 仅复制源和目标之间不匹配的文件。 现在,通过理解它的语法来最好地学习任何命令的最好方法。 Linux 中 rsync 命令的语法如下所示。

rsync [options]  [source_address] [destination_address]

rsync 命令提供了一长串选项来自定义我们在分析网络时收到的数据。 这是一些最流行的 rsync 选项的列表。

选项 功能
-4 / -6 这用于指定 IP 地址的 IPv4(用于 -4)或 IPv6(用于 -6)解析,以桥接与远程机器的连接。
-一个 这使得 rsync 实用程序在归档模式下工作。 在这里,所有目录都以递归方式同步。 所有块和特殊设备都被传输,所有元数据,如符号链接、所有权和权限都被保留。
-和 此选项用于强制 rsync 实用程序在传输之前压缩数据。 如果同步是通过弱网络连接进行的,这会很有帮助。
-P 当数据传输正在进行时显示进度条。 此外,它会保留仅部分传输的文件。 在通过不稳定或慢速连接传输大文件时,这是一项重要功能。
-q 这使得 rsync 实用程序在归档模式下工作。 在这里,所有不是错误消息的消息都不会显示在输出屏幕上。
-删除 此选项告诉 rsync 命令删除目标位置的所有不相关文件,同时将其与源同步。 这对于使目标“镜像”源非常有用。
-帮助 这用于显示 rsync 命令的帮助页面并退出。

rsync 命令选项

这些只是 Linux 中 rsync 命令最常用的选项。 确保使用 man 命令检查其他选项以利用 rsync 命令的全部功能。

Linux中rsync命令的实际使用

现在我们了解了 Linux 中 rsync 命令的工作原理,是时候学习如何使用它了。 在这里,我们探讨了 rsync 命令的一些常见有用应用。 命令保持相同的本地和远程备份,在本演示中,我将执行本地备份。 您只需要更改远程备份的目标地址(在此处的第 5 小节中演示)

1. 使用 rsync 命令同步目录

Linux 中 rsync 命令最基本的用途是同步文件和目录。 在本例中,我们将一个目录的内容同步到另一个目录。 这是同步两个目录的命令。

rsync -a address/to/source/dir/ address/to/destination/dir/

如果目标目录不存在,它将由 rsync 命令创建。 正如您在以下屏幕截图中看到的,源和目标已同步

同步目录

2. 设置增量备份

备份是防止数据丢失的重要安全预防措施。 当您的最新副本被删除或损坏并且无法恢复时,备份可以为您提供一些补偿。 有了它们,您只需要自上次备份以来重新做一些事情。 而 rsync 可以帮助解决这个问题。

假设您希望为您的工作创建每日备份。 这可以通过以下命令完成。

rsync -a /dir1/ --delete /dir2/


# Cronjob command to run the backup daily -- Add this to the crontab file
0 20 * * * rsync -a /dir1/ --delete /dir2/
rsync 删除同步

正如我们在上面的屏幕截图中看到的,所有不在源中的文件都从目标中删除了。

我们使用 cronjob 来确保命令每天自动运行。 您可以在此处了解有关使用 cronjobs 自动执行任务的更多信息。

通常建议至少创建两种类型的备份——每天/每周或每周/每月——具体取决于您的要求。 如果您希望在每日/每周同步中删除某些内容并且需要将其取回,则第二个备份是一种故障保护。 每周/每月备份应该仍然有这样的文件。

3. 同步后删除源文件

当您处理具有多个系统的项目时,镜像非常有用。 在这种情况下,当您在一个系统上删除某些内容时,应将其从所有系统中删除以保持同步,这一点很重要。 这可以使用 rsync 命令轻松完成。 当您希望从目标中删除从源中删除的文件时,我们使用以下命令。

rsync --remove-source-files /dir1/ /backup-dir

4. 设置同步速度限制

当我们使用 rsync 传输文件时,它会占用我们的系统资源(当在本地使用时)和网络带宽(当用于与远程主机同步时)。 为了防止这种情况,我们可以限制数据传输的速率。 这是我们这样做的方法。

rsync --bwlimit=2000 /dir1/ /dir3/

在此命令中使用 –bwlimit 功能,我们可以关闭 此同步的数据传输速率为 2000 KBPS(千字节,而不是千比特). 这确保我们可以将系统资源用于其他用途,即使在同步过程中也是如此。

5. 对远程目录使用 rsync

该实用程序的主要目的是在服务器或系统之间远程同步文件。 但命令本质上保持不变。 由于该命令使用 ssh 和 rsh 协议通过网络进行通信,因此可以以与我们在连接到 ssh 服务器时使用的格式相同的格式指定目标目录。

rsync -a /home/dir1 [email protected]:<directory>

# For example:
rsync -a /home/dir1 [email protected]:/home/dir1

如果我们在上面的命令中交换源和目标,我们还可以将文件从远程服务器同步到我们本地机器上的目录。

包起来

rsync 命令是一个强大的实用程序,可以满足 Linux 用户的复制和同步要求。 它具有广泛的应用,并通过其特殊的增量传输算法优化了数据传输和备份的过程。 我们希望本教程能够帮助您理解 Linux 中的 rsync 命令。 如果您有任何反馈、疑问或更正,请随时在下面的评论中留言。

[ad_2]

Related Posts