文件同步神器-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
英文地址,請注明出處:http://en.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數學第…