简介
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/
这样可以确保您在应用更改之前查看更改,从而防止意外丢失数据。
参考资料
如需了解更多详情,请参阅官方文档: