Rsync 命令参数组合大全

Rsync 命令参数组合大全

一、基础参数组合

  1. 基础同步
rsync -av source/ destination/           # 归档同步(最常用)
rsync -avz source/ destination/          # 压缩传输
rsync -avh source/ destination/          # 人类可读格式
rsync -avP source/ destination/          # 显示进度和部分传输
  1. 网络传输
rsync -avz -e ssh user@host:/source/ /local/      # SSH加密传输
rsync -avz -e "ssh -p 2222" source/ user@host:/dest/  # 指定SSH端口
rsync -avz rsync://host/module/source/ /local/   # 使用rsync协议

二、文件过滤组合

  1. 包含/排除文件
rsync -av --include='*.txt' --exclude='*' source/ dest/  # 只同步txt文件
rsync -av --include='*/' --include='*.jpg' --exclude='*' source/ dest/  # 只同步jpg文件
rsync -av --exclude='*.tmp' source/ dest/                # 排除临时文件
rsync -av --exclude={'*.log','tmp/'} source/ dest/       # 排除多种类型
rsync -av --exclude-from='exclude-list.txt' source/ dest/ # 从文件读取排除列表
  1. 时间过滤
rsync -av --files-from='filelist.txt' source/ dest/     # 从列表文件同步
rsync -av --max-size='100M' source/ dest/               # 限制最大文件大小
rsync -av --min-size='1K' source/ dest/                 # 限制最小文件大小

三、时间控制组合

  1. 基于时间同步
rsync -av --update source/ dest/                # 只更新较新的文件
rsync -av --ignore-existing source/ dest/       # 跳过已存在文件
rsync -av --size-only source/ dest/             # 仅按大小比较
rsync -av --checksum source/ dest/              # 使用校验和比较

# 时间范围同步
rsync -av --files-from=<(find source/ -mtime -7 -type f) source/ dest/  # 7天内修改的文件
rsync -av --files-from=<(find source/ -newer timestamp -type f) source/ dest/  # 比时间戳新的文件
  1. 增量备份
rsync -av --link-dest=/path/to/previous/backup source/ /backup/today/  # 硬链接备份
rsync -av --compare-dest=/old/backup/ source/ /new/backup/            # 比较备份

四、删除操作组合

  1. 删除策略
rsync -av --delete source/ dest/                # 删除目标多余文件
rsync -av --delete-before source/ dest/         # 传输前删除
rsync -av --delete-during source/ dest/         # 传输时删除
rsync -av --delete-after source/ dest/          # 传输后删除
rsync -av --delete-excluded source/ dest/       # 删除排除的文件
  1. 安全删除
rsync -avn --delete source/ dest/               # 试运行,不实际删除
rsync -av --delete --backup --backup-dir=/backup/deleted source/ dest/  # 备份被删除文件

五、高级功能组合

  1. 权限和属性
rsync -avA source/ dest/                        # 保留ACL权限
rsync -avX source/ dest/                        # 保留扩展属性
rsync -avH source/ dest/                        # 保留硬链接
rsync -avS source/ dest/                        # 高效处理稀疏文件
rsync -av --chmod=755 source/ dest/             # 设置权限
rsync -av --chown=user:group source/ dest/      # 设置所有者(需要root)
  1. 性能优化
rsync -avz --compress-level=9 source/ dest/     # 最高压缩级别
rsync -av --bwlimit=1000 source/ dest/          # 限制带宽1000KB/s
rsync -av --whole-file source/ dest/            # 传输整个文件(局域网)
rsync -av --no-whole-file source/ dest/         # 增量传输(广域网)
rsync -av --partial source/ dest/               # 保留部分传输的文件
rsync -av --partial-dir=.rsync-partial source/ dest/  # 指定部分文件目录
  1. 日志和监控
rsync -av --progress source/ dest/              # 显示进度
rsync -av --stats source/ dest/                 # 显示统计信息
rsync -av --itemize-changes source/ dest/       # 详细显示变化
rsync -av --log-file=rsync.log source/ dest/    # 记录日志
rsync -av --log-file-format='%t %f %b' source/ dest/  # 自定义日志格式

六、实用场景组合

  1. 备份场景
# 完整备份(带删除)
rsync -av --delete --backup --backup-dir=../deleted/$(date +%Y%m%d) source/ backup/

# 时间戳备份
rsync -av --link-dest=../latest source/ backup/$(date +%Y%m%d_%H%M%S)
ln -snf $(date +%Y%m%d_%H%M%S) latest

# 每日增量备份
rsync -av --link-dest=../yesterday/ source/ today/
  1. 网站同步
# 同步网站文件,排除缓存
rsync -avz --exclude={'cache/','tmp/'} --delete /var/www/ user@server:/var/www/

# 镜像同步
rsync -avz --delete mirror.example.com::module/ /local/mirror/
  1. 数据库备份
# 同步MySQL数据目录
rsync -av --progress --delete /var/lib/mysql/ /backup/mysql/

# 配合mysqldump
mysqldump -A | gzip | rsync -avz --progress - user@host:/backup/db.sql.gz

七、安全相关组合

  1. 安全传输
# 使用SSH密钥
rsync -avz -e "ssh -i /path/to/key.pem" source/ user@host:/dest/

# 限制连接尝试
rsync -avz --timeout=30 source/ dest/

# 只传输安全文件
rsync -av --safe-links source/ dest/
  1. 验证和测试
# 干运行(测试)
rsync -avn source/ dest/                        # 显示将执行的操作
rsync -av --dry-run --stats source/ dest/       # 带统计的测试

# 验证传输
rsync -avc source/ dest/                        # 基于校验和验证
rsync -av --checksum source/ dest/              # 完整校验和验证

八、组合示例速查


场景  命令
快速复制    rsync -av source/ dest/
压缩传输    rsync -avz source/ dest/
远程备份    rsync -avz -e ssh source/ user@host:/backup/
镜像同步    rsync -av --delete source/ dest/
增量备份    rsync -av --link-dest=/yesterday/ source/ /today/
选择性同步   rsync -av --include='*.jpg' --exclude='*' source/ dest/
带宽限制    rsync -av --bwlimit=500 source/ dest/
试运行 rsync -avn --delete source/ dest/

九、常用别名设置

# 快速同步
alias rsync-copy="rsync -avz --progress"
alias rsync-move="rsync -avz --progress --remove-source-files"
alias rsync-update="rsync -avzu --progress"
alias rsync-sync="rsync -avzu --delete --progress"

# 备份专用
alias backup="rsync -av --delete --exclude={'*.tmp','cache/'}"

# 网络传输
alias rsync-remote="rsync -avzP -e ssh"

十、注意事项
斜杠重要性:

rsync -av source/ dest/      # 同步source目录的内容到dest
rsync -av source dest/       # 同步source目录本身到dest

权限问题:需要相应权限才能保留文件属性
符号链接:默认跟随符号链接,使用 -L 复制链接指向的文件
大型传输:使用 --partial 和 --append 支持断点续传
这些组合覆盖了 rsync 的绝大多数使用场景,可以根据实际需求进行选择和调整。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容