常用命令
| 场景 | 命令示例 |
|---|---|
| 基本复制 | rsync -av 源/ 目标/ |
| 远程同步 | rsync -av 源/ user@host:/目标/ |
| 删除目标多余文件 | rsync -av --delete 源/ 目标/ |
| 排除文件 | rsync -av --exclude='*.log' 源/ 目标/ |
| 限速传输 | rsync -av --bwlimit=1000 源/ 目标/ |
| 断点续传 | rsync -av --partial 源/ 目标/ |
1. 基本复制(本地 → 本地)
bash
rsync -av 源目录/ 目标目录/-a:归档模式(保留权限、时间戳等,相当于-rlptgoD)。-v:显示详细输出。- 注意:
- 源目录末尾加
/→ 只复制目录内容,不复制目录本身。 - 不加
/→ 复制整个目录。
- 源目录末尾加
2. 同步目录(删除目标多余文件)
bash
rsync -av --delete 源目录/ 目标目录/--delete:删除目标目录中不存在于源目录的文件(保持严格同步)。
3. 排除特定文件/目录
bash
rsync -av --exclude='*.tmp' --exclude='logs/' 源目录/ 目标目录/--exclude='模式':排除匹配的文件或目录(支持通配符*)。
4. 增量备份(保留历史版本)
bash
rsync -avb --backup-dir=/backup/增量目录 源目录/ 目标目录/-b:备份冲突文件。--backup-dir:指定备份目录存放被覆盖的文件。
5. 远程同步(SSH 协议)
bash
# 本地 → 远程
rsync -av -e ssh 源目录/ user@remote_host:/目标目录/
# 远程 → 本地
rsync -av -e ssh user@remote_host:/源目录/ 目标目录/-e ssh:使用 SSH 加密传输(默认已启用,可省略)。
6. 限速传输(避免占用带宽)
bash
rsync -av --bwlimit=1000 源目录/ 目标目录/--bwlimit=KBPS:限制传输速率(单位:KB/s)。
7. 断点续传
bash
rsync -av --partial 源目录/ 目标目录/--partial:保留部分传输的文件,下次继续。
8. 显示进度
bash
rsync -av --progress 源目录/ 目标目录/--progress:显示文件传输进度。
9. 仅测试(不实际执行)
bash
rsync -avn 源目录/ 目标目录/-n(--dry-run):模拟运行,显示会执行的操作但不复制。
常见问题
权限问题
加-z压缩传输:bashrsync -avz 源目录/ user@remote:/目标目录/同步符号链接
使用-L复制链接指向的实际文件:bashrsync -avL 源目录/ 目标目录/大文件优化
用-P(--partial --progress):bashrsync -avP 大文件/ 目标目录/