rsync安裝與使用-linux015

使用 rsync 可以非常高效地將文件或目錄從一個服務器傳輸到另一個服務器。

能力:

  • 支持 64 位文件、64 位 inode、64 位時間戳、64 位長整型
  • 支持套接字對、符號鏈接、符號鏈接時間、硬鏈接、硬鏈接特殊文件、硬鏈接符號鏈接
  • 支持 IPv6、訪問時間(atimes)、批處理文件、就地更新、附加操作、ACLs、擴展屬性、可選的隔離參數、字符集轉換(iconv)、預分配
  • 支持停止操作、無創建時間(crtimes)

優化:

  • SIMD 優化、無匯編優化、OpenSSL 加密、無 MD5 匯編優化

校驗和算法:

  • xxh128、xxh3、xxh64 (xxhash)、MD5、MD4、SHA1、無校驗

壓縮算法:

  • zstd、lz4、zlibx、zlib、無壓縮

守護進程認證:

  • sha512、sha256、sha1、md5、md4

rsync 完全不提供任何保證。這是自由軟件,您可以在某些條件下重新分發它。詳情請參見 GNU 通用公共許可證。

rsync 是一個文件傳輸程序,能夠通過快速的差異化算法高效地進行遠程更新。

01 安裝
apt-get install rsync
02 使用
使用方法:
rsync [選項]... 源 [源]... 目標
或者 rsync [選項]... 源 [源]... [用戶@]主機:目標
或者 rsync [選項]... 源 [源]... [用戶@]主機::目標
或者 rsync [選項]... 源 [源]... rsync://[用戶@]主機[:端口]/目標
或者 rsync [選項]... [用戶@]主機:源 [目標]
或者 rsync [選項]... [用戶@]主機::源 [目標]
或者 rsync [選項]... rsync://[用戶@]主機[:端口]/源 [目標]### 選項:
- **`--verbose` 或 `-v`**:增加詳細輸出
- **`--info=FLAGS`**:細化信息輸出的詳細程度
- **`--debug=FLAGS`**:細化調試輸出的詳細程度
- **`--stderr=e|a|c`**:更改標準錯誤輸出模式(默認:錯誤)
- **`--quiet` 或 `-q`**:抑制非錯誤消息
- **`--no-motd`**:抑制守護進程模式的 MOTD(消息)
- **`--checksum` 或 `-c`**:基于校驗和跳過文件,而不是根據修改時間和大小
- **`--archive` 或 `-a`**:歸檔模式(即 `-rlptgoD`,不包括 `-A,-X,-U,-N,-H`)
- **`--no-OPTION`**:關閉隱式選項(例如,`--no-D`)
- **`--recursive` 或 `-r`**:遞歸進入目錄
- **`--relative` 或 `-R`**:使用相對路徑名稱
- **`--no-implied-dirs`**:不與 `--relative` 一起發送隱式目錄
- **`--backup` 或 `-b`**:制作備份(參見 `--suffix` 和 `--backup-dir`)
- **`--backup-dir=DIR`**:將備份制作到 `DIR` 指定的目錄結構中
- **`--suffix=SUFFIX`**:備份的后綴(默認是 `~`,不使用 `--backup-dir`)
- **`--update` 或 `-u`**:跳過接收端已經更新的文件
- **`--inplace`**:就地更新目標文件
- **`--append`**:將數據附加到較短的文件
- **`--append-verify`**:附加并驗證舊數據的文件校驗和
- **`--dirs` 或 `-d`**:傳輸目錄時不遞歸
- **`--old-dirs` 或 `--old-d`**:在與舊版 `rsync` 通信時,`--dirs` 的表現
- **`--mkpath`**:創建目標路徑中缺少的組件
- **`--links` 或 `-l`**:保持符號鏈接為符號鏈接
- **`--copy-links` 或 `-L`**:將符號鏈接轉換為它們指向的文件/目錄
- **`--copy-unsafe-links`**:只轉換“危險”的符號鏈接
- **`--safe-links`**:忽略指向樹外的符號鏈接
- **`--munge-links`**:修改符號鏈接使其安全且不可用
- **`--copy-dirlinks` 或 `-k`**:將符號鏈接的目錄轉換為引用的目錄
- **`--keep-dirlinks` 或 `-K`**:將接收端的符號鏈接目錄視為目錄
- **`--hard-links` 或 `-H`**:保持硬鏈接
- **`--perms` 或 `-p`**:保持權限
- **`--executability` 或 `-E`**:保持可執行權限
- **`--chmod=CHMOD`**:修改文件和/或目錄的權限
- **`--acls` 或 `-A`**:保持 ACL(這會自動啟用 `--perms`)
- **`--xattrs` 或 `-X`**:保持擴展屬性
- **`--owner` 或 `-o`**:保持文件所有者(僅限超級用戶)
- **`--group` 或 `-g`**:保持文件組
- **`--devices`**:保持設備文件(僅限超級用戶)
- **`--copy-devices`**:將設備內容作為普通文件復制
- **`--write-devices`**:將數據寫入設備作為文件(啟用 `--inplace`)
- **`--specials`**:保持特殊文件
- **`-D`**:與 `--devices --specials` 相同
- **`--times` 或 `-t`**:保持修改時間
- **`--atimes` 或 `-U`**:保持訪問時間
- **`--open-noatime`**:避免更改打開文件的訪問時間
- **`--crtimes` 或 `-N`**:保持創建時間
- **`--omit-dir-times` 或 `-O`**:在 `--times` 時省略目錄
- **`--omit-link-times` 或 `-J`**:在 `--times` 時省略符號鏈接
- **`--super`**:接收端嘗試執行超級用戶活動
- **`--fake-super`**:使用擴展屬性存儲/恢復特權屬性
- **`--sparse` 或 `-S`**:將零序列轉換為稀疏塊
- **`--preallocate`**:在寫入文件前預分配目標文件
- **`--dry-run` 或 `-n`**:進行試運行,不做任何更改
- **`--whole-file` 或 `-W`**:以整體文件方式復制文件(不使用差異傳輸算法)
- **`--checksum-choice=STR`**:選擇校驗和算法
- **`--one-file-system` 或 `-x`**:不要跨越文件系統邊界
- **`--block-size=SIZE` 或 `-B`**:強制使用固定的校驗塊大小
- **`--rsh=COMMAND` 或 `-e`**:指定要使用的遠程 shell
- **`--rsync-path=PROGRAM`**:指定遠程機器上運行的 `rsync` 程序

使用 : 時通過遠程 shell 連接,使用 ::rsync:// 連接時通過 rsync 守護進程,且要求源或目標以模塊名稱開頭。


常用選項:
  • --verbose-v:增加詳細輸出
  • --quiet-q:抑制非錯誤信息
  • --checksum-c:基于校驗和而非修改時間和文件大小來跳過文件
  • --archive-a:歸檔模式,包括 -rlptgoD(不包括 -A,-X,-U,-N,-H
  • --recursive-r:遞歸進入目錄
  • --links-l:保持符號鏈接為符號鏈接
  • --copy-links-L:將符號鏈接轉換為引用文件/目錄
  • --delete:從目標目錄刪除多余的文件
  • --dry-run-n:執行試運行,不做任何更改
  • --progress:在傳輸過程中顯示進度
  • --compress-z:在傳輸過程中壓縮文件數據
  • --exclude:排除匹配特定模式的文件
  • --include:不要排除匹配特定模式的文件
  • --bwlimit:限制套接字 I/O 帶寬
  • --version-V:打印版本信息并退出
  • --help-h:顯示幫助信息

常用的守護進程相關選項:
  • --daemon:啟動 rsync 守護進程
  • --password-file:從文件中讀取守護進程的密碼

錯誤代碼和調試:

如果遇到問題或錯誤,rsync 會提供錯誤代碼和詳細的調試信息,可以通過 --debug 參數獲取更詳細的調試信息。

如果要查看完整的文檔,可以使用 rsync(1)rsyncd.conf(5) 手冊,或訪問 rsync 官方網站。

03 常用案例

基本命令格式:

rsync -avz /path/to/local/file_or_directory username@remote_host:/path/to/remote/directory

命令選項解釋:

  • -a:歸檔模式,等同于 -rlptgoD,表示遞歸復制并保留文件屬性(如權限、時間戳等)。
  • -v:啟用詳細輸出,顯示傳輸過程。
  • -z:啟用壓縮傳輸,適合大文件,減少傳輸的數據量。
  • username:遠程主機的用戶名。
  • remote_host:遠程主機的IP地址或域名。
  • /path/to/remote/directory:遠程服務器上的目標目錄。
例子 1:將本地文件傳輸到遠程服務器
rsync -avz /home/user/file.txt username@remote_server:/home/username/target_directory
例子 2:將本地目錄傳輸到遠程服務器
rsync -avz /home/user/myfolder/ username@remote_server:/home/username/target_directory/

注意: / 在目錄路徑末尾的差異。末尾帶 / 會將目錄內容傳輸到目標目錄中,不帶 / 會傳輸整個目錄。

例子 3:從遠程服務器同步到本地服務器
rsync -avz username@remote_server:/home/username/remote_folder /local/destination_folder
常用
rsync -avzP -e "ssh -p 17226" /mnt/data/home/XXXX h4tk3rwu5w84thvx.XXX:/mnt/data/home/#/決定是整個目錄,還是目錄內部-a(歸檔模式):歸檔模式用于保留文件的符號鏈接、權限、時間戳、組和所有者等屬性,相當于啟用 -rlptgoD 選項。
-r:遞歸進入目錄。
-l:保留符號鏈接。
-p:保留文件權限。
-t:保留修改時間。
-g:保留文件所屬組。
-o:保留文件所有者。
-D:保留設備文件。
-v(詳細模式):增加命令執行時的輸出,顯示哪些文件正在傳輸。
-z(壓縮):在傳輸過程中壓縮數據,以減少帶寬使用。
-P:這個選項等同于 --partial --progress:
--partial:保持已傳輸的部分文件,即使傳輸中斷,也不會丟失已傳輸的部分。
--progress:顯示文件傳輸的進度。
-e "ssh -p 17226":使用 ssh 連接遠程主機,并指定端口 17226。這是用來加密數據傳輸的協議,-p 選項指定 SSH 連接的端口。
/mnt/data/home/XXXX:本地源目錄:rsync 將從這個路徑開始同步文件。請注意,路徑末尾有一個斜杠 /,這表示將同步目錄內的所有內容。
h4tk3rwu5w84thvx.XXX:/mnt/data/home/:遠程目標目錄:數據將被傳輸到遠程主機 h4tk3rwu5w84thvx.XXX 上的 /mnt/data/home/ 目錄。
h4tk3rwu5w84thvx.XXX 是遠程主機的地址,:/mnt/data/home/ 是目標路徑。

常用額外選項:

  • -e ssh:指定使用 SSH 作為傳輸協議(默認就是 SSH,但可以明確指定)。
  • --progress:顯示傳輸進度。
  • --delete:刪除目標目錄中不再源目錄中的文件。
例子 4:顯示進度
rsync -avz --progress /home/user/myfolder/ username@remote_server:/home/username/target_directory/
例子 5:刪除目標文件夾中源目錄已刪除的文件
rsync -avz --delete /home/user/myfolder/ username@remote_server:/home/username/target_directory/

注意:

  • 使用 rsync 進行數據傳輸時,最好通過 SSH 進行連接。
  • 通過添加選項如 -v-z--progress 等可以讓你更好地控制和監控傳輸過程。
  • 根據具體需要選擇是否使用 --delete 來同步刪除不再存在的文件。

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

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

相關文章

UE5.3 C++ CDO的初步理解

一.UObject UObject是所有對象的基類,往上還有UObjectBaseUtility。 注釋:所有虛幻引擎對象的基類。對象的類型由基于 UClass 類來定義。 這為創建和使用UObject的對象提供了 函數,并且提供了應在子類中重寫的虛函數。 /** * The base cla…

Pandas基礎06(異常值的檢測與過濾/抽樣/常用聚合函數/數據聚合)

Pandas基礎06 異常值的檢測與過濾 在數據分析中,異常值(Outliers)是指與其他數據點顯著不同的值。這些值可能由于數據錄入錯誤、設備故障或極端情況而產生,因此在進行數據分析之前,需要對其進行檢測與過濾。本文將介紹…

【PyTorch】4.張量拼接操作

個人主頁:Icomi 在深度學習蓬勃發展的當下,PyTorch 是不可或缺的工具。它作為強大的深度學習框架,為構建和訓練神經網絡提供了高效且靈活的平臺。神經網絡作為人工智能的核心技術,能夠處理復雜的數據模式。通過 PyTorch&#xff0…

jstat命令詳解

jstat 用于監視虛擬機運行時狀態信息的命令,它可以顯示出虛擬機進程中的類裝載、內存、垃圾收集、JIT 編譯等運行數據。 命令的使用格式如下。 jstat [option] LVMID [interval] [count]各個參數詳解: option:操作參數LVMID:本…

App.Current.Services.GetService<UserView>()無限循環

代碼無線循環 public partial class UserView : UserControl{public UserView(){InitializeComponent();InitData();}private void InitData(){DataContext App.Current.Services.GetService<UserView>();}} } DataContext App.Current.Services.GetService<User…

(動態規劃路徑基礎 最小路徑和)leetcode 64

視頻教程 1.初始化dp數組&#xff0c;初始化邊界 2、從[1行到n-1行][1列到m-1列]依次賦值 #include<vector> #include<algorithm> #include <iostream>using namespace std; int main() {vector<vector<int>> grid { {1,3,1},{1,5,1},{4,2,1}…

松靈機器人 scout ros2 驅動 安裝

必須使用 ubuntu22 必須使用 鏈接的humble版本 #打開can 口 sudo modprobe gs_usbsudo ip link set can0 up type can bitrate 500000sudo ip link set can0 up type can bitrate 500000sudo apt install can-utilscandump can0mkdir -p ~/ros2_ws/srccd ~/ros2_ws/src git cl…

pytorch基于GloVe實現的詞嵌入

PyTorch 實現 GloVe&#xff08;Global Vectors for Word Representation&#xff09; 的完整代碼&#xff0c;使用 中文語料 進行訓練&#xff0c;包括 共現矩陣構建、模型定義、訓練和測試。 1. GloVe 介紹 基于詞的共現信息&#xff08;不像 Word2Vec 使用滑動窗口預測&…

C++ 堆棧分配的區別

這兩種聲明方式有什么區別 1.使用 new 關鍵字動態分配內存 動態分配&#xff1a;使用 new 關鍵字會在堆&#xff08;heap&#xff09;上分配內存&#xff0c;并返回一個指向該內存位置的指針。生命周期&#xff1a;對象的生命周期不會隨著聲明它的作用域結束而結束&#xff0…

深入解析 Linux 內核中的頁面錯誤處理機制

在現代操作系統中,頁面錯誤(Page Fault)是內存管理的重要組成部分。當程序試圖訪問未映射到物理內存的虛擬內存地址時,CPU 會觸發頁面錯誤異常。Linux 內核通過一系列復雜的機制來處理這些異常,確保系統的穩定性和性能。本文將深入解析 Linux 內核中處理頁面錯誤的核心代碼…

MATLAB-Simulink并行仿真示例

一、概述 在進行simulink仿真的過程中常常遇到CPU利用率較低&#xff0c;仿真緩慢的情況&#xff0c;可以借助并行仿真改善這些問題&#xff0c;其核心思想是將參數掃描、蒙特卡洛分析或多工況驗證等任務拆分成多個子任務&#xff0c;利用多核CPU或計算集群的并行計算能力&…

Workbench 中的熱源仿真

探索使用自定義工具對移動熱源進行建模及其在不同行業中的應用。 了解熱源動力學 對移動熱源進行建模為各種工業過程和應用提供了有價值的見解。激光加熱和材料加工使用許多激光束來加熱、焊接或切割材料。盡管在某些情況下&#xff0c;熱源 &#xff08;q&#xff09; 不是通…

I2C基礎知識

引言 這里祝大家新年快樂&#xff01;前面我們介紹了串口通訊協議&#xff0c;現在我們繼續來介紹另一種常見的簡單的串行通訊方式——I2C通訊協議。 一、什么是I2C I2C 通訊協議&#xff08;Inter-Integrated Circuit&#xff09;是由Phiilps公司在上個世紀80年代開發的&#…

深度學習 DAY3:NLP發展史

NLP發展史 NLP發展脈絡簡要梳理如下&#xff1a; (遠古模型&#xff0c;上圖沒有但也可以算NLP&#xff09; 1940 - BOW&#xff08;無序統計模型&#xff09; 1950 - n-gram&#xff08;基于詞序的模型&#xff09; (近代模型&#xff09; 2001 - Neural language models&am…

CSS 背景與邊框:從基礎到高級應用

CSS 背景與邊框&#xff1a;從基礎到高級應用 1. CSS 背景樣式1.1 背景顏色示例代碼&#xff1a;設置背景顏色 1.2 背景圖像示例代碼&#xff1a;設置背景圖像 1.3 控制背景平鋪行為示例代碼&#xff1a;控制背景平鋪 1.4 調整背景圖像大小示例代碼&#xff1a;調整背景圖像大小…

HarmonyOS簡介:應用開發的機遇、挑戰和趨勢

問題 更多的智能設備并沒有帶來更好的全場景體驗 連接步驟復雜數據難以互通生態無法共享能力難以協同 主要挑戰 針對不同設備上的不同操作系統&#xff0c;重復開發&#xff0c;維護多套版本 多種語言棧&#xff0c;對人員技能要求高 多種開發框架&#xff0c;不同的編程…

【Linux】列出所有連接的 WiFi 網絡的密碼

【Linux】列出所有連接的 WiFi 網絡的密碼 終端輸入 sudo grep psk /etc/NetworkManager/system-connections/*會列出所有連接過 Wifi 的信息&#xff0c;格式類似 /etc/NetworkManager/system-connections/AAAAA.nmconnection:pskBBBBBAAAAA 是 SSID&#xff0c;BBBBB 是對…

如何使用tushare pro獲取股票數據——附爬蟲代碼以及tushare積分獲取方式

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、pandas是什么&#xff1f;二、使用步驟 1.引入庫2.讀入數據 總結 一、Tushare 介紹 Tushare 是一個提供中國股市數據的API接口服務&#xff0c;它允許用戶…

觀察者模式和訂閱發布模式的關系

有人把觀察者模式等同于發布訂閱模式&#xff0c;也有人認為這兩種模式存在差異&#xff0c;本質上就是調度的方法不同。 發布訂閱模式: 觀察者模式: 相比較&#xff0c;發布訂閱將發布者和觀察者之間解耦。&#xff08;發布訂閱有調度中心處理&#xff09;

linux 環境安裝 dlib 的 gpu 版本

默認使用 pip 安裝的 dlib 是不使用 gpu 的 在國內社區用百度查如何安裝 gpu 版本的 dlib 感覺信息都不太對&#xff0c;都是說要源碼編譯還有點復雜 還需要自己安裝 cuda 相關的包啥的&#xff0c;看著就頭大 于是想到這個因該 conda 自己就支持了吧&#xff0c;然后查了一下…