当前位置:首页>Linux>Linux下rsync命令详解:高效同步的终极利器

Linux下rsync命令详解:高效同步的终极利器

  • 2026-09-28 07:37:55
Linux下rsync命令详解:高效同步的终极利器

在我们日常的系统运维中,服务器之间进行文件传输是经常要用到的功能,一般我们都会有使用scp进行文件的传输,但遇到增量或者断点续传的时候,scp就不能满足我们的要求。这时候rsync就派上了用场。

rsync(Remote Sync),它不仅能实现本地文件高效复制,更能通过网络完成远程主机间的安全同步,核心优势是仅传输文件差异部分(增量同步),大幅节省带宽与时间,堪称数据备份、文件迁移、服务器同步的首选工具。

一、rsync核心优势

和传统的scp等命令相比,rsync的优势主要体现在以下方面:

  • 增量传输:能够完成增量传输,而非完整文件。大文件/海量文件同步效率翻倍;

  • 完整保留元数据:支持保留文件权限、时间戳、属主属组、软硬链接、设备文件等;

  • 多模式兼容:支持本地同步、远程SSH同步、rsync守护进程模式;

  • 安全可靠:默认通过SSH加密传输,支持断点续传,网络中断后可继续同步;

  • 灵活可控:可过滤文件、删除目标冗余文件、模拟执行等,适配复杂场景。

二、基础语法,一看就懂

rsync的语法结构如下:

rsync [选项] 源路径 目标路径

路径格式说明:

  • 本地路径:直接写绝对/相对路径(如/data/src/、./backup/);

  • 远程路径(SSH模式):[用户@]主机IP/域名:路径(如root@192.168.2.105:/data/dst/);

  • 守护进程模式:rsync://[用户@]主机/模块名/路径。

注意事项:

源路径末尾如果加斜杠/ ,表示同步目录内的内容;不加斜杠 表示同步目录本身(含目录名),这是新手最容易踩坑的点!

三、高频必用参数,掌握这些就够了

rsync核心参数如下:

1. 基础功能参数

  • -a(--archive):归档模式,最常用! 等价于-rlptgoD,递归同步+保留所有元数据(权限、时间、属主、链接等);

  • -v(--verbose):详细输出同步过程,方便排查问题;

  • -z(--compress):传输时压缩数据,减少网络带宽占用(远程同步必加);

  • -h(--human-readable):以人类可读格式显示文件大小(如KB、MB);

  • -n(--dry-run):模拟执行,不实际同步,仅展示操作结果(高危操作前必用!);

  • -P:等价于--partial --progress,显示传输进度+支持断点续传(大文件远程同步必备)。

2. 同步控制参数

  • --delete:危险但实用,删除目标中存在、但源中不存在的文件(实现“镜像同步”,执行前务必用-n测试);

  • --exclude=PATTERN:排除指定文件/目录(如--exclude="*.log"排除日志文件);

  • --include=PATTERN:包含指定文件/目录(与--exclude配合使用,精准过滤);

  • -u(--update):仅同步源文件比目标文件更新的内容,避免覆盖旧文件;

  • --bwlimit=RATE:限制传输带宽(如--bwlimit=1024表示限速1MB/s,避免占用全部带宽)。

四、实战场景

场景1:本地目录同步

yum -y install rsync #安装rsync ,已安装可忽略 
# 同步src目录内容到dst目录(保留所有元数据,显示过程)rsync -av /data/src/ /data/dst/
#模拟同步,不实际执行(测试用) rsync -avn /data/src/ /data/dst/
# 镜像同步(删除dst中src没有的文件,先测试再执行)rsync -avn --delete /data/src/ /data/dst/rsync -av --delete /data/src/ /data/dst/  #确认好,删除后不可恢复

场景2:远程同步

(1)本地→远程(推)
# 本地src同步到远程服务器的dst目录(压缩传输+显示进度)rsync -avzP /data/src/ root@192.168.2.105:/data/dst/  #对端也需要安装rsync

#增量同步,仅同步src新增的文件,src目录新增new.txt文件rsync -avu /data/src /data/dst/

# 指定SSH端口(如远程SSH端口为22,具体以实际为准)rsync -avzP -e "ssh -p 2222" /data/src/ root@192.168.1.100:/data/dst/

(2)远程→本地(拉)

# 远程服务器的src同步到本地dst目录rsync -avzP root@192.168.1.100:/data/src/ /data/dst/

场景3:文件过滤

# 同步src到dst,排除所有.log文件和tmp目录rsync -av --exclude="*.log" --exclude="tmp/" /data/src/ /data/dst/
# 仅同步.txt文件,排除其他所有文件,include和exclude参数不能少rsync -av --include="*.txt" --exclude="*" /data/src/ /data/dst/

场景4:限速同步

# 限速1MB/s,远程同步src到dstrsync -avzP --bwlimit=1024 /data/src/ root@192.168.2.105:/data/dst/
#断点续传rsync -avzP /data/src root@192.168.2.105:/data/dst/

五、注意事项

  1. 路径斜杠问题:/data/src/(同步内容) vs /data/src(同步目录本身),务必根据需求选择;

  2. --delete参数:执行前必须用-n模拟,避免误删目标文件;

  3. 远程同步权限:确保远程用户对目标目录有读写权限,否则会报错;

  4. 大文件同步:加-P参数,支持断点续传,避免网络中断后重新传输;

  5. 守护进程模式:批量同步可配置rsyncd.conf,实现无密码、多模块同步,但需注意安全配置(限制IP、设置密码)。

六、总结

rsync凭借增量同步、完整保留元数据、多模式兼容的核心优势,成为Linux下数据同步的“瑞士军刀”。

在日常使用中,我们需要牢记-avzP组合参数,配合--delete、--exclude等控制选项,就能轻松应对本地备份、远程迁移等绝大多数场景。

下次遇到数据库备份、断点续传等同步需求,可以试试rsync,效率提升不止一点点!

#linux  #运维  #rsync同步  #运维实战

最新文章

随机文章