rsync 是 Linux 中最常用的文件同步工具之一,支持增量传输、断点续传、权限保持、排除规则等高级功能。它常用于代码同步、备份、部署、远程环境同步等场景。
本文总结 rsync 的常用参数、典型用法。
1. rsync 常用参数说明
✅ 基础参数
| 参数 | 含义 |
|---|---|
| -v | verbose,显示详细输出 |
| -a | archive 模式,递归复制并保持权限、时间戳、软链接等属性(相当于 -rlptgoD) |
| -r | 递归复制目录(已包含在 -a 中) |
| -P | 等价于 --partial --progress:显示进度 + 支持断点续传 |
| --delete | 删除目标端中源端已不存在的文件(镜像同步) |
| --exclude=PATTERN | 排除匹配的文件或目录 |
| --partial | 保留未完成的文件,断点续传 |
| --progress | 显示传输进度 |
2. rsync 常见使用模式
✅ 2.1 本地目录同步到远端
rsync -avP local_dir/ user@host:/remote/path/
✅ 2.2 从远端同步到本地
rsync -avP user@host:/remote/path/ local_dir/
✅ 2.3 排除文件同步
rsync -avP --exclude='*.log' --exclude='.git' src/ dest/
✅ 2.4 镜像同步(删除目标端多余文件)
rsync -avP --delete src/ dest/
3. rsync 使用建议
✅ 使用 -a 保持文件属性
适用于代码、配置、环境同步。
✅ 使用 -P 便于大文件传输
断点续传 + 进度显示。
✅ 使用 --exclude 减少传输量
排除 .git、日志、缓存等。
✅ 使用 --delete 时要谨慎
它会删除目标端多余文件,适用于镜像同步,不适用于备份。
4. 常用 rsync 模板(可直接复用)
✅ 同步代码(排除 git)
rsync -avP --exclude='.git' project/ user@host:/workspace/project
✅ 同步日志目录(保留所有属性)
rsync -avP /var/log/ user@host:/backup/log/
✅ 同步大文件(断点续传)
rsync -avP bigfile.iso user@host:/data/
✅ 完整镜像同步(慎用)
rsync -avP --delete src/ dest/