当前位置:首页>Linux>rsync:Linux最强文件同步工具,工程师必会的高效用法

rsync:Linux最强文件同步工具,工程师必会的高效用法

  • 2026-10-06 20:34:41
rsync:Linux最强文件同步工具,工程师必会的高效用法

在 Linux 世界里,如果你只允许安装 一个文件同步工具,那几乎所有工程师都会选择 rsync。原因很简单:

  • 支持 增量同步

  • 支持 远程同步

  • 支持 断点续传

  • 支持 权限 / 时间 / 符号链接

  • 几乎 所有 Linux 服务器都内置

但现实是:

90% 工程师只会用rsync -av src dst

今天这篇文章,我把 rsync 的核心原理 + 实战命令全部讲清楚。

看完你基本可以 把 rsync 用到极致。


一、为什么 rsync 比 cp / scp 快很多?

传统复制工具:

工具
方式
cp
本地全量复制
scp
远程全量复制

而 rsync 使用的是著名的:

Delta Encoding

核心思想:

只传输 变化的数据块

流程如下:

源文件  │  │ 计算 checksum  ▼目标端比较  │  │ 找到不同 block  ▼只传输差异

例如:

1GB 日志文件只改了 10KBscp 传输:1GBrsync 传输:10KB

这也是为什么:

rsync 可以快 100 倍。


二、5 分钟快速上手 rsync

1 安装

Linux 基本都自带。

如果没有:

Ubuntu / Debian

sudo apt install rsync

CentOS

sudo yum install rsync

Mac

brew install rsync

2 最基础同步

rsync -av src/ dst/

参数解释:

参数
含义
-a
archive模式
-v
显示详细信息

示例:

rsync -av ./data ./backup

输出:

sending incremental file listfile1.txtfile2.log

3 本地 → 远程同步

rsync -av ./data user@server:/backup

rsync 默认使用 SSH 传输。


4 远程 → 本地

rsync -av user@server:/data ./backup

三、rsync最重要的一个细节

rsync -av src dst

和

rsync -av src/ dst

完全不同。

示例:

目录结构:

src/ ├ file1 └ file2

情况1

rsync -av src dst

结果:

dst/ └ src/     ├ file1     └ file2

情况2

rsync -av src/ dst

结果:

dst/ ├ file1 └ file2

总结:

写法
含义
src
同步目录
src/
同步目录内容

这是 rsync 最经典的坑。


四、工程师最常用的 10 个 rsync 参数

1 显示进度

rsync -av --progress src/ dst/
输出:
file1.log  20%  200MB  10MB/s

2 压缩传输

rsync -avz src/ server:/backup

-z:传输压缩

适合:

  • 跨公网

  • 带宽有限


3 删除多余文件

rsync -av --delete src/ dst/

保证:

dst == src

用于:

  • 镜像同步

  • 网站部署


4 断点续传

rsync -avP bigfile.iso server:/backup

-P 等于:

--progress--partial

5 排除文件

rsync -av --exclude="*.log" src/ dst/
排除日志。

6 排除多个目录

rsync -av \--exclude=node_modules \--exclude=.git \src/ dst/

7 使用 SSH 指定端口

rsync -av -e "ssh -p 2222" src server:/backup

8 限制带宽

rsync -av --bwlimit=1000 src server:/backup
单位:KB/s

避免占满网络。


9 只同步新文件

rsync -avu src/ dst/-u

skip newer files


10 dry run 模式

rsync -av --dry-run src/ dst/
只模拟。

生产环境必用。


五、工程师最实用的 10 个 rsync 场景

场景1:网站部署

rsync -av --delete ./dist/ server:/var/www/html

常见于:

  • 前端发布

  • 静态站点


场景2:服务器备份

rsync -av /data /backup

配合 crontab

0 3 * * * rsync -a /data /backup
每天凌晨备份。

场景3:日志同步

rsync -av server:/var/log ./logs

场景4:大文件同步

rsync -avP big.tar server:/backup
断点续传。

场景5:Docker 数据备份

rsync -av /var/lib/docker /backup
适合容器迁移。

场景6:CI/CD 构建发布

很多 CI 系统其实都使用 rsync。

例如:

  • GitLab CI

  • Jenkins

发布脚本:

rsync -av --delete build/ prod:/app

场景7:服务器迁移

rsync -aHAX root@old:/ /new
保留:
  • 权限

  • xattr

  • hardlink


场景8:只同步目录结构

rsync -av -f"+ */" -f"- *" src/ dst/

场景9:同步 100 万小文件

rsync -av --delete --info=progress2

场景10:增量备份

rsync -av --link-dest
实现:

快照备份。


六、rsync 性能极限优化

当数据规模达到:

10 TB1000 万文件

需要优化。


1 使用压缩

rsync -az

2 关闭权限同步

rsync -rtv

比 -a 更快。


3 使用 --whole-file

局域网:

rsync -av --whole-file

跳过 delta 算法。


4 并行 rsync

结合:

  • GNU Parallel

ls data | parallel rsync {} server:/backup/

七、rsync vs scp vs cp

工具
场景
是否增量
cp
本地复制
❌
scp
远程复制
❌
rsync
文件同步
✅

结论:

rsync 几乎完胜。


八、rsync 的终极组合技

很多顶级工程师会组合使用:

工具
用途
rsync
同步
ssh
加密传输
cron
定时任务
tar
归档

例如:

tar czf backup.tar.gz datarsync backup.tar.gz server:/backup

九、rsync 的一句话总结

如果只允许我推荐一个 Linux 工具:

rsync 必在前三。

因为它解决了工程师三个核心问题:

数据同步服务器备份系统迁移
这也是为什么:20 年过去了,rsync 仍然没有被替代。

十、收藏级 rsync 命令

# 本地同步rsync -av src/ dst/# 远程同步rsync -av src server:/backup# 删除多余文件rsync -av --delete src/ dst/# 断点续传rsync -avP bigfile server:/backup# 排除文件rsync -av --exclude="*.log" src/ dst/# 限速rsync -av --bwlimit=1000 src server:/backup# dry-runrsync -av --dry-run src/ dst/
参考链接:https://linux.die.net/man/1/rsync

文章推荐

Linux性能压测工具完全总结:从CPU、内存到磁盘、网络的终极指南

netcat:你必须会的Linux网络调试工具

lsof如何揭示Linux一切皆文件的终极真相

SSH 常用命令行参数详解:从能连上到玩出花

最新文章

随机文章