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 实用程序在归档模式下工作。 在这里,所有目录都以递归方式同步。 所有块和特殊设备都被传输,所有元数据(如符号链接、所有权和权限)都被保留。 |
-z | 此选项用于强制 rsync 实用程序在传输之前压缩数据。 如果同步是通过弱网络连接进行的,这将很有帮助。 |
-P | 正在进行数据传输时显示进度条。 此外,它会保留仅部分传输的文件。 在通过不稳定或慢速连接传输大文件时,这是一项重要功能。 |
-q | 这使得 rsync 实用程序在归档模式下工作。 在这里,不是错误消息的所有消息都不会显示在输出屏幕上。 |
-删除 | 此选项告诉 rsync 命令在与源同步时删除目标位置的所有不相关文件。 这对于使目标“镜像”源很有用。 |
-帮助 | 这用于显示 rsync 命令的帮助页面并退出。 |
rsync 命令选项
这些只是 Linux 中 rsync 命令最常用的选项。 确保使用 man 命令检查其他选项以利用 rsync 命令的全部功能。
Linux中rsync命令的实际使用
现在我们了解了 Linux 中 rsync 命令的工作原理,是时候学习如何使用它了。 在这里,我们探讨了 rsync 命令的一些常见有用的应用程序。 这些命令与本地和远程备份相同,在本演示中,我将执行本地备份。 您只需更改远程备份的目标地址(在 第 5 小节在这里)
1. 使用 rsync 命令同步目录
Linux 中 rsync 命令最基本的用途是同步文件和目录。 在这个 example,我们会将一个目录的内容同步到另一个目录。 这是同步两个目录的命令。
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/
正如我们在上面的屏幕截图中看到的,所有不在源中的文件都已从目标中删除。
我们使用 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 username@ipaddress:<directory> # For example: rsync -a /home/dir1 [email protected]:/home/dir1
如果我们在上述命令中交换源和目标,我们还可以将文件从远程服务器同步到本地计算机上的目录。
总结
rsync 命令是一个功能强大的实用程序,可以满足 Linux 用户的复制和同步要求。 它具有广泛的应用程序,并通过其特殊的增量传输算法优化了数据传输和备份的过程。 我们希望本教程能够帮助您理解 Linux 中的 rsync 命令。 如果您有任何反馈、疑问或更正,请随时将它们留在下面的评论中。