rsync基本命令和用法
rsync(remote sync)是一款开源的文件同步工具,以增量传输为核心优势 —— 仅传输源和目标之间的差异部分,而非完整文件,大幅节省带宽和时间。它支持本地文件同步、远程服务器间同步(通过 SSH 或 rsync 守护进程),广泛用于数据备份、网站部署、服务器镜像等场景。本文将从基础命令到高级用法,全面讲解 rsync 的使用方法。
一、rsync 安装与核心优势
1. 安装 rsync
rsync 通常预安装在 Linux 系统中,若未安装,可通过包管理器安装:
# Debian/Ubuntu 系统
sudo apt-get install rsync# CentOS/RHEL 系统
sudo yum install rsync# macOS 系统(需先安装 Homebrew)
brew install rsync
2. 核心优势
- 增量传输:首次同步完整文件,后续仅传输修改的部分(基于文件大小和修改时间,或校验和);
- 多协议支持:支持本地同步、SSH 远程同步(
user@host:path)、rsync 守护进程(rsync://user@host/path); - 灵活的文件处理:可保留文件权限、时间戳、符号链接等元数据,支持删除目标端冗余文件;
- 带宽控制:可限制传输速率,避免占用过多网络资源。
二、rsync 基本命令格式
rsync 的核心命令格式为:
rsync [选项] 源路径 目标路径
- 源路径 / 目标路径:可以是本地路径(如
/home/user/file.txt)、远程路径(如user@192.168.1.100:/data/backup); - 选项:控制同步行为(如是否递归、是否压缩、是否保留权限等),是 rsync 功能的核心。
三、常用选项详解
rsync 的选项众多,以下是最常用的核心选项(建议结合示例理解):
| 选项 | 作用说明 | 典型场景 |
|---|---|---|
-a |
归档模式(archive),等价于 -rlptgoD,递归同步并保留几乎所有元数据(权限、时间戳、符号链接等) |
备份场景(需完整保留文件属性) |
-v |
详细输出(verbose),显示同步过程中的文件列表 | 查看同步进度和详情 |
-z |
传输时压缩文件(compress),减少网络传输量 | 远程同步(尤其带宽有限时) |
-h |
以人类可读格式(human-readable)显示文件大小(如 K、M、G) | 配合 -v 更直观查看大小 |
-P |
等价于 --progress --partial:显示传输进度,且保留部分传输的文件(断点续传) |
大文件传输(避免中断后重传) |
--delete |
删除目标路径中源路径没有的文件,使目标与源完全一致 | 镜像同步(如网站文件部署) |
-n |
模拟同步(dry run),仅显示会执行的操作,不实际同步 | 验证同步命令是否正确(防止误操作) |
-r |
递归同步目录(recursive),但不保留元数据(-a 已包含 -r) |
简单目录同步(无需保留属性) |
-L |
跟随符号链接(treat symlinks as files),将链接指向的文件同步,而非链接本身 | 需要同步链接指向的实际文件时 |
--exclude=PATTERN |
排除符合 PATTERN 的文件 / 目录(如 --exclude=*.log 排除日志文件) |
同步时过滤临时文件、日志等 |
四、实战用法示例
1. 本地文件 / 目录同步
(1)同步单个文件
# 将 source.txt 同步到 target.txt(若 target.txt 存在则覆盖,不存在则创建)
rsync -v /home/user/source.txt /tmp/target.txt
(2)同步目录(递归)
# 将 source_dir 目录同步到 target_dir(target_dir 不存在则创建,存在则将 source_dir 内容同步到其中)
rsync -av /home/user/source_dir /tmp/target_dir# 若需将 source_dir 本身(而非其内容)同步到 target_dir 下:
rsync -av /home/user/source_dir/ /tmp/target_dir/source_dir/
# 注意:源路径结尾加 / 表示同步目录内的内容,不加则同步目录本身
(3)同步并删除目标冗余文件
# 使 target_dir 完全等同于 source_dir(删除 target_dir 中 source_dir 没有的文件)
rsync -av --delete /home/user/source_dir /tmp/target_dir
2. 远程同步(基于 SSH 协议)
rsync 最常用的远程同步方式是通过 SSH 协议(默认使用 22 端口),格式为
user@remote_host:remote_path。(1)本地 → 远程(上传文件 / 目录)
# 将本地 source_dir 同步到远程服务器的 /data/backup 目录
rsync -avzP /home/user/source_dir user@192.168.1.100:/data/backup
# 说明:
# -z 压缩传输(适合远程)
# -P 显示进度并支持断点续传
(2)远程 → 本地(下载文件 / 目录)
# 将远程服务器的 /var/log 目录同步到本地的 /tmp/remote_logs
rsync -avzP user@192.168.1.100:/var/log /tmp/remote_logs
(3)指定 SSH 端口(非默认 22 端口)
若远程服务器 SSH 端口为 2222,需通过
-e 选项指定:rsync -avzP -e "ssh -p 2222" /home/user/file.txt user@192.168.1.100:/tmp/
3. 基于 rsync 守护进程的同步(适合大规模部署)
对于频繁的跨服务器同步(如集群节点间同步),可配置 rsync 守护进程(daemon),通过
rsync:// 协议访问,无需每次输入 SSH 密码。(1)简单示例(假设远程已配置 rsync 守护进程,共享模块为 backup)
# 同步远程 rsync 服务的 backup 模块到本地
rsync -avzP rsync://user@192.168.1.100/backup /tmp/local_backup
注:rsync 守护进程配置较复杂(需修改/etc/rsyncd.conf),适合专业运维场景,中小规模同步优先用 SSH 协议。
4. 实用场景:排除文件 / 目录同步
通过
--exclude 排除不需要同步的文件(支持通配符 *、? 等):# 同步 source_dir,但排除 .log 日志文件和 tmp 目录
rsync -av --exclude=*.log --exclude=tmp/ /home/user/source_dir /tmp/target_dir# 从文件读取排除规则(每行一个模式)
echo "*.log" > exclude.list
echo "tmp/" >> exclude.list
rsync -av --exclude-from=exclude.list /home/user/source_dir /tmp/target_dir
5. 模拟同步(防止误操作)
使用
-n 选项测试同步命令是否正确,避免意外删除或覆盖文件:# 模拟将 source_dir 同步到 target_dir 并删除冗余文件(仅显示操作,不实际执行)
rsync -av --delete -n /home/user/source_dir /tmp/target_dir
# 确认输出无误后,去掉 -n 执行实际同步
五、常见问题与注意事项
1. 权限问题:同步后文件权限异常
- 原因:默认
-a选项会保留源文件权限,若目标目录权限不足(如远程服务器的user对/data/backup无写权限),会导致同步失败。 - 解决:确保目标路径有写入权限,或使用
--chmod选项强制修改同步后的权限(如--chmod=ugo=rwX赋予读写权限)。
2. 符号链接处理:同步后链接失效
- 原因:默认情况下,rsync 会同步符号链接本身(作为链接文件),而非链接指向的实际文件。
- 解决:添加
-L选项跟随符号链接,同步实际文件:rsync -avL /home/user/link_file /tmp/target # link_file 是符号链接
3. 大文件传输中断:需断点续传
- 解决:使用
-P选项(包含--partial),中断后重新执行相同命令会从断点继续传输:rsync -avzP large_file.iso user@192.168.1.100:/data/
4. 带宽控制:避免占用过多网络资源
通过
--bwlimit=RATE 限制传输速率(单位:KB/s):# 限制同步速率为 100KB/s
rsync -avzP --bwlimit=100 /home/user/big_dir user@192.168.1.100:/data/
六、总结
rsync 是文件同步的高效工具,核心价值在于增量传输和灵活的同步策略。掌握以下关键点即可应对大多数场景:
- 基础命令:
rsync [选项] 源 目标,其中-a(归档)、-v(详细)、-z(压缩)、-P(进度 + 断点)是最常用组合; - 本地同步:用于备份到外部硬盘、同一服务器内目录同步;
- 远程同步:通过 SSH 协议(
user@host:path)实现服务器间文件上传 / 下载,适合网站部署、日志收集; - 高级技巧:
--delete保持目标与源一致,--exclude过滤文件,-n模拟同步防误操作。
无论是个人用户备份数据,还是企业级服务器镜像,rsync 都能以高效、可靠的方式完成文件同步任务,是系统管理员和开发者的必备工具。
相关新闻
XMind 2025 破解版下载及安装使用教程
2026/6/11 20:33:35
查看详情
二分图最大匹配 Dinic/EK算法
2026/6/11 20:04:49
查看详情
爱,在行动中生长,我们因爱而变得辽阔——《岛上书店》读后感
2026/6/17 21:32:57
查看详情
SAP权限管理实战:从PFCG基础操作到批量角色维护
2026/6/18 3:53:58
查看详情
别再花冤枉钱了!这个被程序员偷偷收藏的“宝藏自选库”,才是真正改变你生活的神仙网站!
2026/6/18 3:52:49
查看详情
7.2 易混对比:Skill vs MCP vs Workflow 等
2026/6/18 3:52:49
查看详情
2026年比较好的西安本地极简门/西安卫生间极简门/西安极窄极简门/西安极简门优质公司推荐 - 品牌宣传支持者
2026/6/18 3:51:33
查看详情
离职信息同步:避免遗漏账号权限回收 AI Agent构建滑动时间窗口的自动化治理方案
2026/6/18 3:50:37
查看详情
在Android设备上运行完整Linux系统:proot-distro的魔法与实用指南
2026/6/18 0:01:28
查看详情
ZigBee ZCL事件驱动与基础簇实战:从原理到健壮设备开发
2026/6/18 0:01:28
查看详情
时间序列分解实战指南:趋势、季节性与残差的工程化解读
2026/6/18 0:01:28
查看详情
从Landsat到高分系列:手把手教你选择适合自己项目的遥感卫星数据
2026/6/17 16:21:19
查看详情
福州空调维修上门加氟移机空调不制冷、推荐本地老牌鑫盛达、冷顺安 - 我叫一
2026/6/17 16:06:28
查看详情
嵌入式调试器组件化界面与拖拽交互技术详解
2026/6/17 16:15:44
查看详情
E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰
2026/6/17 21:10:30
查看详情
深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年
2026/6/17 21:06:50
查看详情