文件同步神器-rsync命令讲解

rsync 是一个强大的文件同步与传输工具,广泛用于本地或远程服务器之间的高效文件备份、镜像或同步。其核心优势是通过增量传输​(仅传输文件差异部分)和压缩减少数据传输量,同时支持保留文件元数据(如权限、时间戳、所有者等)。

一、核心特性

  • 增量同步​:通过比较源和目标的文件校验和(如MD5),仅传输修改过的部分,大幅提升效率。
  • 压缩传输​:支持 -z 选项压缩数据,适合网络传输。
  • 保留元数据​:-a(归档模式)可保留权限、时间戳、属主/组等信息(需权限支持)。
  • 灵活过滤​:支持排除/包含特定文件(--exclude/--include)。
  • 远程支持​:通过SSH协议与远程服务器同步(user@host:path 格式)。

二、基础用法

1. 本地文件/目录同步

最常用场景是同步本地文件或目录,基础命令格式:

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

常用选项说明​:

  • -v:详细模式(Verbose),显示同步过程。
  • -a:归档模式(Archive),等价于 -rlptgoD(递归、保留符号链接、时间戳、权限、属主/组等),​推荐备份时使用
  • -r:递归同步子目录(仅对目录有效)。
  • -z:压缩传输(减少网络传输量,本地同步时可忽略)。
  • -h:人性化显示(Human-readable),将文件大小转换为KB/MB/GB等。
  • --delete:删除目标中源不存在的文件(谨慎使用!避免误删)。
  • --dry-run:模拟执行(预演),不实际同步,用于测试命令是否正确。
  • --exclude=模式:排除匹配模式的文件/目录(如 --exclude="*.log" 排除所有日志文件)。
  • --include=模式:仅包含匹配模式的文件(需配合 --exclude 使用)。
  • -n:同 --dry-run,模拟执行。

示例1:本地目录同步(保留元数据)​

# 将本地 /data/source 同步到 /data/backup(覆盖式同步,保留所有元数据)
rsync -av /data/source/ /data/backup/

注意:源路径末尾的 / 很重要!

  • 源/(如 /data/source/):同步目录内的内容到目标(目标目录已存在时)。
  • (如 /data/source):同步整个目录到目标(目标会生成 source 子目录)。

示例2:同步时排除特定文件

# 同步 /home/user 到 /backup/user,但排除 .git 目录和 *.tmp 文件
rsync -av --exclude='.git' --exclude='*.tmp' /home/user/ /backup/user/

示例3:同步并删除目标冗余文件

# 假设 /data/backup 已有部分文件,现希望与 /data/source 完全一致(删除目标中多余的文件)
rsync -av --delete /data/source/ /data/backup/
2. 远程服务器同步(通过SSH)​

rsync 支持通过SSH协议与远程服务器同步,格式为:

# 从远程服务器同步到本地(拉取)
rsync [选项] 用户@远程主机:远程路径 本地路径# 从本地同步到远程服务器(推送)
rsync [选项] 本地路径 用户@远程主机:远程路径

示例4:从远程服务器拉取文件到本地

# 将远程服务器(192.168.1.100)的 /var/www 拉取到本地的 /backup/www(保留元数据,显示详细过程)
rsync -avz -e ssh root@192.168.1.100:/var/www/ /backup/www/

-e ssh:显式指定使用SSH协议(默认即SSH,可省略)。

示例5:推送本地文件到远程服务器

# 将本地的 /data/logs 推送到远程服务器(192.168.1.100)的 /backup/logs(压缩传输)
rsync -avzh --delete /data/logs/ root@192.168.1.100:/backup/logs/

示例6:指定SSH非默认端口(如2222)​

rsync -avz -e "ssh -p 2222" /local/path user@remotehost:/remote/path

三、高级技巧

1. 同步特殊文件(如符号链接、设备文件)​

-a 模式已包含 -D(等价于 --devices --specials),可同步设备文件(如 /dev 下的文件)和符号链接(默认保留符号链接本身,而非指向的文件)。
若需同步符号链接指向的实际文件,添加 --copy-links 选项。

2. 限制传输带宽

使用 --bwlimit=速率 限制同步时的带宽(单位:KB/s),避免占用过多网络资源。
示例:限制为1000KB/s(约1MB/s):

rsync -avz --bwlimit=1000 /data/ user@remote:/backup/
3. 分批次同步大文件

对于超大文件,可使用 --partial 选项保留未完成的传输文件(避免中断后重新下载),配合 --progress 查看进度:

rsync -avz --partial --progress bigfile.iso user@remote:/backup/
4. 同步权限与所有者

若需严格同步文件的所有者、属组或权限(如备份系统文件),需以 root 权限运行 rsync(因普通用户无法修改其他用户的文件属性)。
-a 模式已包含 -p(保留权限)和 -o/-g(保留属主/组),通常无需额外设置。

四、注意事项

  1. ​**路径末尾的 /**​:源路径末尾的 / 决定是同步目录内容还是目录本身(如 /src/ 同步内容到目标,/src 同步目录到目标)。
  2. 权限问题​:若目标目录无写入权限,需用 sudo(本地同步)或远程用户有足够权限(远程同步)。
  3. ​**--delete 谨慎使用**​:该选项会删除目标中源不存在的文件,可能导致数据丢失,建议先通过 --dry-run 测试。
  4. 网络稳定性​:远程同步时若网络中断,-P 选项(等价于 --partial --progress)可保留中断文件,后续继续同步。

五、总结

rsync 是文件同步的“瑞士军刀”,适用于备份、镜像、迁移等多种场景。核心命令结构清晰,通过组合不同选项可满足复杂需求。熟练掌握 rsync 能显著提升文件管理效率!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917301.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust: 工具链版本更新

遇到 cargo build --release 错误,比如,当前 Rust 工具链版本(1.78.0)低于依赖项所需的最低版本(部分依赖要求 ≥1.82.0)。以下是系统化的解决方案: 🔧 一、升级 Rust 工具链&#x…

Prompt-to-Prompt| 修改Attention会有“反向传播”或梯度计算?

需要注意的几个问题:额外计算开销:Cross-Attention Control原因:Prompt-to-Prompt的编辑方法需要动态干预交叉注意力(Cross-Attention)层的权重,这会引入额外的计算和显存占用:需要缓存注意力矩…

电商API接口的优势、数据采集方法及功能说明

一、电商API接口的核心优势1. 高效性与准确性数据采集效率:API通过标准化参数(如商品ID、类目)直接获取结构化数据(JSON/XML),无需解析HTML,减少误差。例如,采集1000条商品信息&…

iOS企业签名掉签,iOS企业签名掉签了怎么办?

不能上架到App Store的iOS应用 ,几乎每一个开发者的选择都是通过iOS签名这种内测渠道来完成APP的上架任务,最常用的就是企业签名、超级签名以及TF上架,其中最受欢迎的当属于企业签名了。不过企业签名会出现掉签的现象,那么企业签名…

存储成本深度优化:冷热分层与生命周期管理——从视频平台年省200万实践解析智能存储架构

一、冷热分层:存储成本优化的核心逻辑1.1 数据访问的“二八定律”据行业统计,80%的访问集中在20%的热数据上,而超过90天的历史数据访问频率下降70%以上。某视频平台存储超10PB媒体文件,未分层前年存储成本高达680万元,…

Java设计模式之《备忘录模式》

目录 1. 概念 1.1、定义 1.2、适用场景 2、角色划分 3、实现 1、Originator(发起人) 2、Memento(备忘录) 3、Caretaker(管理者) 4、使用示例 4、优缺点 4.1、优点 4.2、缺点 前言 备忘录模式是…

SpringBoot 多环境配置

在实际项目开发中,不同环境往往有不同的配置需求: 开发环境(dev):本地调试,连接测试数据库;测试环境(test):接口联调,接近真实场景;生…

延凡智慧医院数字孪生平台

延凡智慧医院数字孪生平台是延凡科技依托物联网、数字孪生、AI 算法及边缘计算技术打造的医疗场景全要素数字化解决方案,通过构建医院物理实体与虚拟空间的实时映射,实现医疗资源优化、运营效率提升及患者体验升级。一、平台价值(一&#xff…

谈谈WebAssembly、PWA、Web Workers的作用和场景

WebAssembly、PWA 和 Web Workers 是现代 Web 开发中提升性能、扩展能力的重要技术,各自解决不同场景的问题,以下结合实际使用经验分析:一、WebAssembly(Wasm):高性能代码执行作用:WebAssembly …

嵌入式第十八课!!数据结构篇入门及单向链表

在前几章对C语言的学习中,我们学到了:基本的C语法和简单算法面向过程的编程思想而在数据结构这一篇章,我们将要学习:常用的数据存储结构算法面向对象的编程思想数据结构在正式开始学习之前,我们先来了解一下什么是数据…

win10任务栏出问题了,原来是wincompressbar导致的

问题描述兄弟们客户说自己电脑现在有问题了,任务栏显示的都不对,和之前的都不一样,现在使用起来非常难受,我们来看一下,这到底是什么问题吧!到客户现场,查看发现,客户桌面系统最底下…

FFmpegHandler 功能解析,C语言程序化设计与C++面向对象设计的核心差异

FFmpegHandler 功能解析 本文件记录了关于 FFmpegHandler 类中核心函数工作流程的详细解释。Q: FFmpeg逐帧解码,FFmpegHandler::openVideo 和 FFmpegHandler::readAVFrame 这两个函数都分别做了什么? A: 可以把整个过程想象成“准备播放一部电影”&#…

Codeforces Round 1039 (Div. 2) A-C

A. Recycling Center题目大意 给你n个垃圾袋,每个垃圾袋有一个重量 在每秒钟,你可以选择一个垃圾袋,如果他的重量小于等于c,那么你可以不花费硬币丢掉它 当你丢掉一个垃圾袋后,其他垃圾袋在这一秒重量会翻倍 问最少花费…

【设计模式】 原则

单一职责原则 对于一个类而言,有且仅有一个引起他变化的原因或者说,一个类只负责一个职责 如果一个类承担的职责过多,那么这些职责放在一起耦合度太高了,一个职责的变化可能会影响这个类其他职责的能力。 所以我们在做软件设计的时…

windows11右键菜单新增项增加drawio文件,使用draw.io

目录1.新建空白模板2.建立注册表文件1.新建空白模板 这里我们的模板文件路径为 D:\Software\drawio\template.drawio 2.建立注册表文件 首先新建一个.txt文件,我这里取名为menulize.txt,然后将下面的内容复制到.txt文件中 Windows Registry Editor Ver…

解锁网页魔法:零基础HTML通关秘籍

文章目录**解锁网页魔法:零基础HTML通关秘籍**HTML 基础目标HTML 结构认识 HTML 标签HTML 文件基本结构标签层次结构快速生成代码框架HTML 常见标签注释标签注释的原则标题标签: h1-h6段落标签: p换行标签:br综合案例: 展示博客超链接标签: a表格标签**基…

类似 Pixso 但更侧重「网页 / 软件界面设计」「前后端可视化开发」的工具

从 GoView 的 Demo 功能来看,它主要聚焦于数据可视化大屏的低代码搭建,更侧重数据图表配置和页面布局,没有类似 Pixso 的在线 UI 设计(如矢量绘图、组件样式精细化设计)功能,其核心是通过预设组件快速构建数…

MySQL--组从复制的详解及功能演练

2.MySQL的组从复制 2.1 配置mastesr [rootmysqlaa ~]# vim /etc/my.cnf [mysqld] server-id10 datadir/data/mysql socket/data/mysql/mysql.sock default_authentication_pluginmysql_native_password log-binmysql-bin[rootmysqlaa ~]# /etc/init.d/mysqld restart# 进入数据…

JavaScript将String转为base64 笔记250802

JavaScript将String转为base64 笔记250802 在 JavaScript 中将字符串转换为 Base64 编码有多种方法,每种方法都有其适用场景。下面我将全面介绍这些方法,包括处理 ASCII 字符、Unicode 字符以及性能优化方案。 基础方法:btoa() 基本用法&a…

Unity3D数学第四篇:射线与碰撞检测(交互基础篇)

Unity3D数学第一篇:向量与点、线、面(基础篇) Unity3D数学第二篇:旋转与欧拉角、四元数(核心变换篇) Unity3D数学第三篇:坐标系与变换矩阵(空间转换篇) Unity3D数学第…