rsync 命令详解
rsync (remote sync) 是一个强大的文件同步工具,可以在本地或远程系统之间高效地同步文件和目录。它只传输变化的文件部分,大大提高了传输效率。
基本语法
bash
rsync [选项] 源文件 目标文件
常用选项
选项 | 说明 |
---|---|
-a, --archive | 归档模式(相当于-rlptgoD),保留权限、时间等 |
-v, --verbose | 显示详细传输信息 |
-z, --compress | 传输时压缩数据 |
-h, --human-readable | 以易读格式输出数字 |
-P | 等同于--partial --progress,显示进度并保留部分传输的文件 |
--delete | 删除目标中源没有的文件 |
-e | 指定远程 shell 使用(如 ssh) |
--exclude=PATTERN | 排除匹配的文件 |
--include=PATTERN | 包含匹配的文件 |
--max-size=SIZE | 不传输大于指定大小的文件 |
--dry-run | 模拟运行,不实际传输 |
使用示例
常用场景示例
- 本地同步
bash
# 同步目录内容(注意尾部/)
rsync -avh /src/path/ /dest/path/
# 同步目录本身
rsync -avh /src/path /dest/
- 远程同步
bash
# 本地 → 远程(SSH协议)
rsync -avz -e ssh /local/path/ user@remote:/remote/path/
# 远程 → 本地
rsync -avz -e ssh user@remote:/remote/path/ /local/path/
- 排除文件
bash
# 排除特定类型/目录
rsync -av --exclude='*.log' --exclude='temp/' /src/ /dest/
# 从文件读取排除规则
rsync -av --exclude-from='exclude.list' /src/ /dest/
- 高级控制
bash
# 带宽限制(100KB/s)
rsync -av --bwlimit=100 /src/ /dest/
# 自定义SSH端口
rsync -av -e 'ssh -p 2222' /src/ user@remote:/dest/
# 最大文件大小限制
rsync -av --max-size='500M' /src/ /dest/
Comments | 0条评论