首页 > 行业资讯 > 宝藏问答 >

问 linuxrsync 命令详解 rsync 增量同步备份教程

2026-11-08 22:29:46
最佳答案

答

linux rsync 是 Linux 非常核心的远程 / 本地文件同步备份工具,最大特点是增量同步,只会传输发生变化的文件块,不是每次全量复制,相比 scp cp 大幅节省带宽和时间,支持本地同步、SSH 远程同步、rsync daemon 守护进程三种模式,广泛用于服务器数据备份、网站代码发布、多机数据一致性同步,它可以保留文件权限、属主、属组、软链接、时间戳等属性,还支持排除指定文件,断点续传,很多运维自动化备份脚本都会使用 rsync,重点要掌握基础语法、常用参数、三种同步模式、源路径末尾斜杠这个经典坑点,这是新手最容易出错的地方。

基础语法

通用格式

rsync [参数] 源路径 目标路径

重点坑点:源路径末尾有没有斜杠含义完全不一样

rsync -av /data//backup/ 只同步 data 里面的内容到 backup

rsync -av /data/backup/ 把 data 整个目录同步到 backup,backup 里面会生成 data 文件夹

常用核心参数对照表

参数功能说明
-a归档模式,最常用,等价 -rlptgoD,递归 + 保留权限属主时间戳软链接等属性
-vverbose,输出详细同步过程
-z传输时压缩数据,跨网络同步节省带宽
-P等于 --partial --progress,断点续传 + 显示传输进度
-r递归同步子目录
-t保留修改时间
-p保留文件权限
-o保留属主,一般需要 root
-g保留属组
-l保留软链接
--delete删除目标端源端已经不存在的文件,实现镜像同步
--exclude排除不需要同步的文件或者目录
--bwlimit限制传输带宽,单位 KB/s,防止同步占满带宽
-e指定远程传输通道,一般搭配 ssh 使用

三种同步模式深度拆解

模式 1 本地同步

两台路径都在本机,类似高级 cp,但是支持增量

示例

rsync -av /source//dest/

模式 2 SSH 远程同步(最常用)

通过 ssh 通道连接远程服务器,不需要单独配置 rsync 服务

示例

rsync -avzP /localdata/root@192.168.1.10:/remotedata/

拉取远程到本地

rsync -avzP root@192.168.1.10:/remotedata//localdata/

可以自定义 ssh 端口,写法

rsync -avzP -e "ssh -p 2222" /data/root@IP:/path/

模式 3 rsync daemon 守护进程模式

远程主机启动 rsyncd 服务,配置 /etc/rsyncd.conf,使用模块名访问,不需要 ssh 账号,适合大规模备份,支持独立账号密码认证,格式

rsync -avzP /data/rsync://IP/ 模块名 /

实操经典案例

镜像同步,目标多余文件删除

rsync -av --delete /web/ root@192.168.1.20:/web/

注意 --delete 风险很高,误操作会清空目标端文件,正式执行前建议加 --dry-run 预演测试

排除文件同步

rsync -av --exclude=".log" --exclude="tmp/" /src/ /dst/

带宽限速同步

rsync -avz --bwlimit=1024 /bigfile/ root@IP:/backup/

预演测试(dry-run,不会真的修改文件)

rsync -av --dry-run /src/ /dst/

进阶要点

1 rsync 增量判断依据:文件大小 + 修改时间,也可以用 --checksum 改成校验和比对,更精准但是消耗 CPU

2 权限问题:保留属主 - o 需要 root 权限,普通用户执行会报错

3 断点续传:大文件传输中断之后,加 - P 可以接着传,不用从头再来

4 定时备份:一般搭配 crontab 定时任务,定期自动执行 rsync 备份

常见报错排错清单

1 Permission denied 源或者目标目录读写权限不足,或者 ssh 登录失败

2 No such file or directory 路径写错,重点检查源路径末尾斜杠

3 连接超时 远程 ssh 端口不通,防火墙拦截,daemon 模式 rsync 端口 873 被拦截

4 同步之后权限丢失 没有使用 - a 归档参数

5 同步之后目标多出整个源目录 源路径忘记加末尾斜杠

【常见问题】

问题 1 linuxrsync 也就是 rsync 源路径末尾斜杠有什么区别

回答 1 linuxrsync 也就是 rsync,源路径带斜杠是同步目录里面内容,不带斜杠是把整个源目录本身同步到目标,是 linuxrsync 最经典易错点。

问题 2 linuxrsync 也就是 rsync -a 参数是什么作用

回答 2 linuxrsync 也就是 rsync 的 - a 是归档模式,递归同步同时保留权限、属主、属组、时间戳、软链接,是 linuxrsync 最常用参数。

问题 3 linuxrsync 也就是 rsync --delete 参数风险是什么

回答 3 linuxrsync 也就是 rsync 的 --delete 会删除目标端源端不存在的文件,做镜像同步使用,误操作会清空目标文件,执行 linuxrsync 前建议 --dry-run 预演。

问题 4 linuxrsync 也就是 rsync 和 scp 区别是什么

回答 4 linuxrsync 也就是 rsync 支持增量同步,只传变更部分,scp 是全量复制,大文件大目录跨机同步优先选择 linuxrsync。

【免责申明】

本文 linuxrsync 也就是 rsync 命令详解基于 GNU rsync 版本编写,不同发行版版本参数细节存在差异,执行 man rsync 查看本机手册,生产环境使用 --delete 类危险参数务必提前测试,内容仅用于 linux 运维学习参考。