Skip to content

rsync 用法

发布于 2025-09-04

常用命令

场景命令示例
基本复制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):模拟运行,显示会执行的操作但不复制。

常见问题

  1. 权限问题
    -z 压缩传输:

    bash
    rsync -avz 源目录/ user@remote:/目标目录/
  2. 同步符号链接
    使用 -L 复制链接指向的实际文件:

    bash
    rsync -avL 源目录/ 目标目录/
  3. 大文件优化
    -P--partial --progress):

    bash
    rsync -avP 大文件/ 目标目录/