rsync 命令詳解

目錄

  • rsync 傳輸備份工作原理詳解
    • 一、核心算法:差異傳輸
    • 二、傳輸流程
    • 三、關鍵技術
    • 四、與cp/scp復制的本質區別
  • rsync的使用
    • 基本語法
      • 常用選項
      • 常用組合案例
        • 1. **本地目錄同步**
        • 2. **遠程同步(SSH協議)**
        • 3. **刪除目標端多余文件**
        • 4. **排除特定文件**
        • 5. **限速傳輸(避免占用帶寬)**
        • 6. **僅同步修改時間不同的文件**
      • 關鍵注意事項
    • rsync 同步方式
      • 1. 完整備份 (Full Backup)
      • 2. 差量備份 (Differential Backup)
      • 3. 增量備份 (Incremental Backup)
      • 常見問題
    • rsync實現遠程增量備份的方案
  • rsync + inotify 實時同步案例
      • 1. 安裝 inotify-tools
      • 2. 實時同步腳本 (rsync_inotify.sh)
      • 3. 啟動腳本(后臺運行)
      • 4. 系統服務配置(可選)

rsync 傳輸備份工作原理詳解

rsync是一個快速和非常方便的文件復制工具。 它能本地復制,遠程復制,或者遠程守護進程方式復制 ,它提供了大量的參數來控制其行為的各個方面,并且允許非常靈活的方式來實現文件的傳輸復制。

rsync監聽端口:873
其核心工作原理可以分為以下幾個關鍵方面:

一、核心算法:差異傳輸

  1. 分塊校驗機制

    • rsync 將文件分割成固定大小的塊(默認約700字節)
    • 對每個塊計算兩個校驗值:
      • 弱校驗(rolling checksum):32位的快速校驗
      • 強校驗(MD5):128位的精確校驗
  2. 差異檢測過程

    • 發送方計算源文件的校驗值
    • 接收方計算目標文件的校驗值
    • 雙方比較校驗值,僅傳輸不匹配的塊

二、傳輸流程

掃描:掃描需要傳輸的文件列表。
檢查:對比源和目標文件的時間戳和大小。
分塊:將文件分割成固定大小的數據塊。
校驗:通過滾動校驗算法計算數據塊的特征值。
傳輸:僅傳輸變化的數據塊。
重組:在目標端重組完整文件。

三、關鍵技術

  1. 雙通道設計

    • 控制通道:傳輸命令和元數據
    • 數據通道:實際文件數據傳輸
  2. 滾動校驗算法

    /* 簡化版滾動校驗計算 */
    uint16_t weak_checksum(char *buf, int len) {uint16_t s1 = 0, s2 = 0;for (int i = 0; i < len; i++) {s1 += buf[i];s2 += s1;}return (s2 << 16) | s1;
    }
    

    這種算法可以高效計算滑動窗口的校驗值

  3. 三次文件處理

    • 文件列表生成
    • 差異比較
    • 文件更新

四、與cp/scp復制的本質區別

操作cp/scprsync
文件比較校驗和比較
傳輸單位整個文件文件塊
網絡使用優化
CPU使用較高
適合場景簡單復制重復同步

rsync的使用

基本語法

rsync [選項] 源文件 目標文件

常用選項

選項作用解釋
-a (–archive)歸檔模式,保留所有文件屬性(權限、時間、所有者等),等同于 -rlptgoD
-v (–verbose)顯示詳細傳輸過程
-z (–compress)壓縮傳輸,節省帶寬(適合遠程同步)
-h (–human-readable)以易讀格式(KB/MB/GB)顯示文件大小
-n (–dry-run)模擬運行,只顯示會做什么但不實際執行
-e指定遠程 shell 命令 (如 -e "ssh -p 2222",默認為ssh)
-P組合選項,等同于 --partial --progress(顯示進度 + 支持斷點續傳)
--exclude排除特定文件或目錄
--include包含特定文件或目錄
--delete刪除目標目錄中存在但源目錄中不存在的文件(保持嚴格同步)

常用組合案例

1. 本地目錄同步
rsync -av /source/ /destination/
  • 作用:將 /source/ 下的內容同步到 /destination/(保留所有屬性)
  • 注意:源路徑末尾的 / 表示同步目錄內容(不含目錄本身),不加 / 會同步目錄本身。
2. 遠程同步(SSH協議)
rsync -avzP -e "ssh -p 22" /local/path/ user@remote:/remote/path/
  • -e "ssh -p 22":指定 SSH 端口(默認 22 可省略)
  • -z:壓縮傳輸加速
3. 刪除目標端多余文件
rsync -av --delete /source/ /destination/
  • 危險操作:確保目標路徑正確,否則可能誤刪數據!
4. 排除特定文件
rsync -av --exclude='*.tmp' --exclude='logs/' /source/ /destination/
  • --exclude:排除匹配的文件或目錄(支持通配符)
  • *:匹配零個或多個字符,例如,*.txt 匹配所有以 .txt 結尾的文件。
  • ?:匹配一個字符,例如,file?.txt 匹配 file1.txt、file2.txt 等。
  • [abc]:匹配方括號內的任意字符,例如,file[1-3].txt 匹配 file1.txt、file2.txt、file3.txt
5. 限速傳輸(避免占用帶寬)
rsync -avz --bwlimit=

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913194.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913194.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913194.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【MySQL進階】錯誤日志,二進制日志,mysql系統庫

目錄 一.錯誤日志 1.1 配置錯誤日志 1.1.1 Windows的默認錯誤日志路徑 1.1.2 Unix和Linux系統的默認錯誤日志路徑 1.2 錯誤日志中事件的字段 1.2.1 核心錯誤事件字段 1.2.2.MySQL 錯誤消息的兩種不同輸出渠道 1.2.3 可選錯誤事件字段 1.3. 刷新錯誤日志文件和重命名 二…

day45-nginx復雜跳轉與https

1. ?nginx復雜跳轉 客戶端ip不是內網(172.16/192.168)ip時&#xff0c;維護文件存在時&#xff0c;返回503或者錯誤頁面 1.1. &#x1f4dd;修改配置文件 server {listen 80;server_name re.linux.cn; root /app/code/re/;set $flag 0;if ( $remote_addr !~* "^172…

基于pcl點云庫實現激光雷達數據采集

基于pcl點云庫實現倍加福R2000激光雷達數據采集 一、項目介紹二、開發詳情三、顯示效果展示四、說明 一、項目介紹 最近用pcl庫實現了倍加福R2000激光雷達的數據采集&#xff0c;并實時在viewer上實時更新顯示。軟件的開發是基于vs2019qt插件pcl庫實現&#xff0c;可以完成如下…

微信小程序61~70

1.組件wxml的slot-插槽 在使用基礎組件時&#xff0c;可以在組件中間寫子節點&#xff0c;從而將子節點內容展示到頁面中&#xff0c;自定義組件也可以接收子節點但是要在組件模板中定義節點&#xff0c;承載組件中間的子節點需要使用多個插槽時&#xff0c;要在組件.js中聲明…

03_性能優化:讓軟件呼吸更順暢

引言 在用戶對軟件響應速度近乎苛刻的今天&#xff0c;性能已成為產品競爭力的核心指標。據Google研究&#xff0c;頁面加載時間每增加1秒&#xff0c;轉化率就會下降20%。本文將從前端、后端、移動端三個維度&#xff0c;揭示性能優化的核心策略與實戰技巧&#xff0c;幫助你打…

LangChain4j 框架模仿豆包實現智能對話系統:架構與功能詳解

系統整體架構設計基于 LangChain4j 框架構建的智能對話系統采用 "前后端分離 大模型中樞" 的三層架構設計&#xff0c;實現了與豆包類似的智能交互體驗。系統架構圖如下所示&#xff1a;┌────────────────────────────────────…

基于uni-app的書法學習管理小程序的設計與實現

一、設計的目的 書法是中華民族傳統文化的瑰寶&#xff0c;更是人類文明的寶貴財富&#xff0c;具有深遠的意義和實價值。在當今數字化時代&#xff0c;隨著信息技術的飛速發展&#xff0c;傳統書法學習模式面臨著諸多挑戰和需要解決的問題。為推動書法學習的現代化轉型&#…

NumPy 函數庫在數學建模中的基本使用方法

一、引言 在數學建模的世界里,我們常常需要處理大量的數據和進行復雜的數值計算。Python 中的 NumPy 庫就像是一位得力的助手,它為我們提供了強大的多維數組對象和豐富的數學函數,讓我們能夠高效地完成各種數值計算任務。接下來,我們將深入探討 NumPy 在數學建模中的基本使…

模塊三:現代C++工程實踐(4篇)第一篇《C++模塊化開發:從Header-only到CMake模塊化》

引言&#xff1a;現代C工程化的核心挑戰&#xff08;終極擴展版&#xff09; 在云計算與物聯網時代&#xff0c;C項目規模呈指數級增長。傳統Header-only開發模式暴露出編譯效率低下、依賴管理混亂、版本沖突頻發等致命問題。本文通過CMake 3.22Conan 2.0工具鏈的深度集成&…

uniapp啟動圖被拉伸問題

記錄下&#xff1a; 安卓手機有不同的規格&#xff0c;很難所有規格都去適配。如果不適配所有機型&#xff0c;那么就會導致部分機型的啟動圖被拉伸。 安卓提供了.9.png圖片格式&#xff0c;允許標注部分拉伸&#xff0c;這樣啟動圖中間的logo就不會被拉伸。 下面2張圖是沒有…

stm32的三種開發方式

以下是針對STM32F103RC實現LED閃爍&#xff08;PC13引腳&#xff09;的三種開發方式示例代碼&#xff0c;每種方式均保持相同的核心邏輯&#xff1a; 1. 寄存器開發方式&#xff08;直接操作寄存器&#xff09; #include "stm32f10x.h"int main(void) {// 1. 開啟G…

SpringBoot問卷調查系統設計與實現

概述 基于SpringBoot開發的問卷調查系統&#xff0c;該系統集成了問卷管理、題目管理等多種功能模塊。 主要內容 核心功能模塊&#xff1a; ??個人信息管理??&#xff1a; 修改密碼個人信息修改 ??問卷管理??&#xff1a; 問卷新增問卷修改問卷刪除 ??題目管理?…

Linux進程管理:從基礎到實戰

在 Linux 系統編程中&#xff0c;進程&#xff08;Process&#xff09; 是操作系統進行資源分配和調度的基本單位。理解進程的概念是掌握系統編程、多任務處理、并發編程的基礎。 目錄 一、什么是進程&#xff1f; 定義&#xff1a; 二、進程的生命周期 示例&#xff1a;查…

工業物聯網中的 Modbus:傳感器與網關通信實戰(二)

四、實戰案例解析 4.1 項目背景與目標 某智能工廠致力于提升生產過程的自動化和智能化水平&#xff0c;對生產線上的各種設備進行實時監控和數據分析。在該工廠的一個生產車間中&#xff0c;存在著大量的傳感器&#xff0c;用于監測設備的運行狀態、環境參數等信息。這些傳感…

飛算 JavaAI 智控引擎:全鏈路開發自動化新圖景

免責聲明: 此文章的所有內容皆是本人實驗測評&#xff0c;并非廣告推廣&#xff0c;并非抄襲。如有侵權&#xff0c;請聯系&#xff0c;謝謝! 文章目錄&#x1f4dd;前言一、飛算 Java AI 智能開發助手簡介1.1何為飛算 Java AI智能助手&#xff1f;2.2 飛算Java AI 直擊開發全場…

MYSQL數據庫(九)MVCC-多版本并發控制

目錄 一 前景導入 1 當前讀 2 快照讀 二 MVCC 1 隱藏字段 2 UndoLog 回滾日志 (1 UndoLog日志 (2 UndoLog版本鏈 3 Read View 面試八股 介紹一下MVCC 一 前景導入 1 當前讀 可使當前事務讀取的是最新版本的數據&#xff0c;讀取時還要保證其他并發事務不能修改當中…

[Pytest] [Part 2]增加 log功能

開始實現需求之前先做個log類&#xff0c;可以給其他模塊使用&#xff0c;也方便以后修改log類的功能和屬性。 使用的是python中的logging包來進行簡單的封裝&#xff0c;具體代碼如下 import logging import sysclass TefLogger:def __init__(self, logger_nameTEST_FRAMEWOR…

NeighborGeo:基于鄰居的IP地理定位(三)

NeighborGeo:基于neighbors的IP地理定位 X. Wang, D. Zhao, X. Liu, Z. Zhang, T. Zhao, NeighborGeo: IP geolocation based on neighbors, Comput. Netw. 257 (2025) 110896, 3. NeighborGeo 本文提出NeighborGeo,利用圖結構學習和有監督對比學習來建立可靠的地標-目標關…

python使用fastmcp包編寫mcp服務端(mcp_server)和mcp客戶端(mcp_client)

安裝fastmcp pip install fastmcp編寫mcp服務端代碼 from fastmcp import FastMCP mcp FastMCP(weather)mcp.tool() def get_weather(city: str):獲取對應城市的天氣:param city: 目標城市:return: 該城市的天氣return f"{city}天氣晴朗&#xff0c;溫度60度&#xff01…

(1)機器學習小白入門 YOLOv:從概念到實踐

(1)機器學習小白入門YOLOv &#xff1a;從概念到實踐 (2)機器學習小白入門 YOLOv&#xff1a;從模塊優化到工程部署 (3)機器學習小白入門 YOLOv&#xff1a; 解鎖圖片分類新技能 目標檢測一直是一個機器學習的一個重要的應用方向。而 YOLOv&#xff08;You Only Look Once&…