跳到主要内容

rsync 文件同步速查表

rsync 是功能强大的文件同步和传输工具,支持本地和远程高效增量同步。本速查表涵盖基础用法、SSH 远程同步、过滤规则以及高级选项,助力数据备份与迁移。

更新: 2026-07-16·30 条命令

基础用法 (Basic Usage)

rsync 基础命令格式:rsync [选项] <源> <目标>

### 本地同步

``yaml # 基本的本地目录同步(归档模式,保留权限和时间戳) rsync -a /path/to/source/ /path/to/destination/

# 显示传输进度 rsync -av /data/ /backup/

# 压缩传输以减少带宽 rsync -az /data/ /backup/

# 显示人类可读的数值 rsync -ah /data/ /backup/

# 组合常用选项:归档+压缩+进度+可读 rsync -avzP /data/ /backup/ `

### 增量传输

`yaml # 只传输差异部分(rsync 默认行为) rsync -av /data/ /backup/

# 删除目标端多余文件(保持两端完全一致) rsync -av --delete /data/ /backup/

# 传输后删除源文件(移动操作) rsync -av --remove-source-files /data/ /backup/ `

### 检查与校验

`yaml # 模拟运行(不实际传输) rsync -av --dry-run /data/ /backup/

# 基于校验和判断文件变化(而非大小+时间) rsync -avc /data/ /backup/ `

远程同步 (Remote Sync via SSH)

通过 SSH 协议在本地与远程主机之间同步文件。

### 推送到远程

`yaml # 本地推送到远程(默认 SSH) rsync -av /local/data/ user@remote:/remote/backup/

# 指定 SSH 端口 rsync -av -e "ssh -p 2222" /local/data/ user@remote:/remote/backup/

# 限制带宽(单位 KB/s) rsync -av --bwlimit=1000 /local/data/ user@remote:/remote/backup/ `

### 从远程拉取

`yaml # 从远程拉取到本地 rsync -av user@remote:/remote/backup/ /local/data/

# 使用 SSH 密钥 rsync -av -e "ssh -i ~/.ssh/deploy_key" user@remote:/remote/backup/ /local/data/ `

### SSH 高级配置

`yaml # 设置 SSH 超时(秒) rsync -av -e "ssh -o ConnectTimeout=10" /local/data/ user@remote:/remote/backup/

# 自定义 SSH 压缩级别 rsync -avz -e "ssh -C" /local/data/ user@remote:/remote/backup/ `

过滤规则 (Filter Rules)

使用包含/排除规则精确控制同步内容。

### 排除与包含

`yaml # 排除特定文件或目录 rsync -av --exclude='*.log' /data/ /backup/

# 排除多个模式 rsync -av --exclude='*.log' --exclude='node_modules/' --exclude='.git/' /project/ /backup/

# 先包含再排除(白名单模式) rsync -av --include='*/' --include='*.py' --exclude='*' /project/ /backup/

# 从文件读取排除规则 rsync -av --exclude-from=exclude.txt /data/ /backup/ `

### 包含模式

`yaml # 只包含特定文件类型 rsync -av --include='*/' --include='*.conf' --exclude='*' /etc/ /backup/

# 包含单个文件 rsync -av --include='config.yml' --exclude='*' /project/ /backup/ `

### 文件列表同步

`yaml # 从文件读取要同步的文件列表 rsync -av --files-from=filelist.txt /data/ /backup/ `

高级选项 (Advanced Options)

### 硬链接增量备份

`yaml # 基于之前的备份做硬链接增量备份 rsync -av --link-dest=/backup/prev-backup /data/ /backup/curr-backup/ `

### 文件属性管理

`yaml # 保留所有文件属性 rsync -av --owner --group /data/ /backup/

# 禁止保留属主 rsync -av --no-owner /data/ /backup/

# 设置文件权限(chmod 模式) rsync -av --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r /data/ /backup/ `

### 大小与超时限制

`yaml # 只同步小于指定大小的文件 rsync -av --max-size=100M /data/ /backup/

# 只同步大于指定大小的文件 rsync -av --min-size=1K /data/ /backup/

# 设置 I/O 超时(秒) rsync -av --timeout=30 /data/ /backup/ `

### rsync 守护进程模式

`yaml # 使用 rsync 守护进程协议(rsync://) rsync -av rsync://rsync.example.com/mirror/ /local/mirror/

# 查看守护进程模块列表 rsync rsync://rsync.example.com/ `

### rsyncd.conf 配置

`yaml # /etc/rsyncd.conf 示例 # [backup] # path = /var/backup # comment = Backup Directory # read only = no # auth users = backupuser # secrets file = /etc/rsyncd.secrets

# 连接到受保护的 rsync 守护进程 rsync -av rsync://backupuser@rsync.example.com/backup/ /local/backup/ ``

基础用法(8)

命令难度
rsync -a /path/to/source/ /path/to/destination/
归档模式同步目录(保留权限、时间戳等)
基础
rsync -av /data/ /backup/
归档模式并显示详细信息
基础
rsync -az /data/ /backup/
归档模式并压缩传输
基础
rsync -ah /data/ /backup/
人类可读的数值显示
基础
rsync -avzP /data/ /backup/
常用组合:归档+压缩+进度+断点续传
基础
rsync -av --delete /data/ /backup/
删除目标端多余文件(镜像同步)
中级
rsync -av --dry-run /data/ /backup/
模拟运行,不实际传输文件
基础
rsync -avc /data/ /backup/
使用校验和判断文件变化
中级

远程同步(6)

命令难度
rsync -av /local/data/ user@remote:/remote/backup/
通过 SSH 推送文件到远程主机
基础
rsync -av user@remote:/remote/backup/ /local/data/
从远程主机通过 SSH 拉取文件
基础
rsync -av -e "ssh -p 2222" /local/data/ user@remote:/remote/backup/
指定 SSH 端口进行同步
中级
rsync -av -e "ssh -i ~/.ssh/deploy_key" user@remote:/source/ /dest/
使用指定 SSH 密钥进行同步
中级
rsync -av -e "ssh -o ConnectTimeout=10" /local/ user@remote:/remote/
设置 SSH 连接超时
中级
rsync -av --bwlimit=1000 /local/data/ user@remote:/remote/backup/
限制带宽(KB/s)
中级

过滤规则(5)

命令难度
rsync -av --exclude='*.log' /data/ /backup/
排除匹配模式的文件
基础
rsync -av --exclude='*.log' --exclude='node_modules/' /project/ /backup/
排除多个模式
基础
rsync -av --include='*/' --include='*.py' --exclude='*' /project/ /backup/
白名单模式:只包含 .py 文件
高级
rsync -av --exclude-from=exclude.txt /data/ /backup/
从文件读取排除规则
中级
rsync -av --files-from=filelist.txt /data/ /backup/
从文件读取需要同步的文件列表
中级

高级选项(11)

命令难度
rsync -av --link-dest=/backup/prev-backup /data/ /backup/curr-backup/
硬链接增量备份
高级
rsync -av --remove-source-files /data/ /backup/
传输后删除源文件(移动)
中级
rsync -av --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r /data/ /backup/
传输时设置目标文件权限
高级
rsync -av --max-size=100M /data/ /backup/
限制最大文件大小
中级
rsync -av --min-size=1K /data/ /backup/
限制最小文件大小
中级
rsync -av --timeout=30 /data/ /backup/
设置 I/O 超时时间
中级
rsync -av --owner --group /data/ /backup/
保留文件属主和组
中级
rsync -av --no-owner /data/ /backup/
不保留文件属主
中级
rsync -av rsync://rsync.example.com/mirror/ /local/mirror/
使用 rsync 守护进程协议同步
高级
rsync rsync://rsync.example.com/
查看 rsync 守护进程可用模块
高级
rsync -av --partial /data/ /backup/
保留部分传输的文件(断点续传)
中级

常见问题

本速查表数据整理自各工具官方文档。最后更新: 2026-07-16。