精通 Linux rsync 命令:完整指南

简介

rsync 命令 是 Linux 中用于同步和传输文件与目录的最强大、最通用的工具之一。无论是备份数据、镜像文件,还是跨系统(本地或远程)传输数据,rsync 都是高效文件管理不可或缺的实用工具。

本指南介绍 rsync 的基础知识、语法、常见用例,以及充分发挥其功能的技巧。


什么是 rsync?

Rsync(Remote Sync)是 Linux 中的一个命令行实用工具,专为以下用途而设计:

  • 高效的文件传输:它使用增量编码,只传输文件中发生变化的部分。
  • 备份与同步:非常适合维护备份和镜像目录。
  • 本地与远程传输:通过 SSH 无缝工作,实现安全的远程操作。

如何使用 rsync

基本语法

rsync 的通用语法如下:

rsync [options] source destination

示例用例

1. 将本地目录复制到远程服务器

rsync -av /local/dir/ user@remote:/remote/dir/

使用的选项:

  • -a:归档模式(保留符号链接、权限、时间戳等)。
  • -v:详细输出,在传输过程中提供详细信息。

2. 将文件从远程服务器同步到本地

rsync -azP user@remote:/remote/dir/ /local/dir/

使用的选项:

  • -z:在传输过程中压缩文件数据,以加快速度。
  • -P:在传输过程中显示进度,并允许恢复中断的传输。

3. 备份文件,同时排除某些文件类型

rsync -av --exclude='*.tmp' /source/dir/ /backup/dir/

--exclude 选项会跳过与指定模式匹配的文件(例如, .tmp 文件)。

4. 删除目标位置中源位置已不存在的文件

rsync -av --delete /source/dir/ /destination/dir/

警告:使用 --delete 时,请务必仔细检查路径,以免意外丢失数据。


使用 rsync 的好处

1. 高效传输

rsync 只传输文件中发生变化的部分,从而节省带宽和时间。

2. 通用性强

无缝处理本地和远程传输,非常适合备份、迁移和同步。

3. 可靠性

支持可恢复的文件传输,确保中断的操作可以恢复,而无需从头开始。

4. 安全性

与 SSH 集成,实现通过远程连接的安全数据传输。

5. 可定制

提供丰富的选项,用于排除文件、设置带宽限制等。

6. 跨平台兼容性

可在 Linux、Unix 乃至 Windows 上运行(通过 Cygwin 或 WSL 等工具)。


额外提示:使用试运行模式!

在运行可能具有破坏性的 rsync 命令(例如,带 --delete)之前,请使用 --dry-run 标志来模拟该操作:

rsync -av --delete --dry-run /source/dir/ /destination/dir/

这样可以确保您在应用更改之前查看更改,从而防止意外丢失数据。


参考资料

如需了解更多详情,请参阅官方文档:

发表评论