【rsync命令用法】rsync 是 Linux 系统中一个非常强大的文件同步工具,广泛用于备份、镜像和数据迁移。它不仅支持本地文件同步,还支持通过 SSH 或 Rsync 守护进程进行远程同步。rsync 的优势在于其高效性、灵活性以及对网络带宽的优化。
一、rsync 命令基本结构
rsync 命令的基本格式如下:
```
rsync [选项] 源路径 目标路径
```
其中,“源路径”可以是本地或远程路径,“目标路径”也可以是本地或远程路径。
二、常用 rsync 选项说明
| 选项 | 含义 | 说明 |
| `-a` | 归档模式 | 保留文件属性(权限、时间戳等),相当于 `-rlptgoD` 的组合 |
| `-r` | 递归复制 | 复制目录及其子目录 |
| `-v` | 显示详细信息 | 显示同步过程中的进度信息 |
| `-z` | 压缩传输 | 在传输过程中压缩数据,减少带宽占用 |
| `-P` | 显示进度和断点续传 | 显示同步进度,并支持中断后继续传输 |
| `-u` | 只同步更新的文件 | 仅同步源文件比目标文件新的文件 |
| `--delete` | 删除目标中多余的文件 | 删除目标中存在但源中没有的文件 |
| `-e` | 指定加密协议 | 如使用 SSH 进行加密传输(如 `-e ssh`) |
三、常见 rsync 使用场景
| 场景 | 示例命令 | 说明 |
| 本地文件同步 | `rsync -av /source/ /destination/` | 将 `/source/` 目录同步到 `/destination/` |
| 远程文件同步(SSH) | `rsync -avz -e ssh /source/ user@remote:/destination/` | 通过 SSH 将本地文件同步到远程主机 |
| 远程到远程同步 | `rsync -avz user1@remote1:/source/ user2@remote2:/destination/` | 在两个远程服务器之间同步文件 |
| 删除目标多余文件 | `rsync -av --delete /source/ /destination/` | 同步时删除目标中多余的文件 |
| 断点续传 | `rsync -avP /source/ /destination/` | 支持中途停止并继续传输 |
四、注意事项
- 使用 `--delete` 时要特别小心,避免误删重要文件。
- 若使用远程同步,确保 SSH 密钥配置正确,避免频繁输入密码。
- rsync 不会自动创建目标目录,需提前确保目录存在。
- 对于大文件或大量文件,建议在非高峰时段执行同步操作,以减少系统负载。
五、总结
rsync 是一个功能强大且灵活的文件同步工具,适用于各种场景下的数据备份与迁移。掌握其常用命令和选项,能够显著提升工作效率。合理使用 rsync,不仅能保证数据的一致性,还能有效节省网络资源和存储空间。


