完全解析Rsync命令的17個備份選項|rsync|算法|exclude|include...

2021-01-08 網易

  常常備份是良好的習慣,只是這麼好習慣只有在無數次的頓足捶胸、呼天搶地的懊惱之後,才會勉勉強強慢慢地養成。

  

  常常備份是良好的習慣,只是這麼好習慣只有在無數次的頓足捶胸、呼天搶地的懊惱之後,才會勉勉強強慢慢地養成,備份最常用的命令是:

  rsync -avl source destination

  此處的短選項 a 是長選項--archive 的簡寫形式。然而,如果我們要系統搬家的時候備份所有的資料,謹慎用 -a 選項。因為如果在新系統上換了新的用戶名,會導致你打不開用 -a 選型備份的所有資料。

  為什麼呢?

  1)便捷卻不簡單的--Archive 選項

  選項--archive看似僅僅代表一個指示條件,其實質卻是多個高頻選項的快捷鍵:

  rsync -a #等價於 -rlptgoD

  換言之,-a這一個option,相當於添加了-rlptgoD這七個options。引言中提出的問題,癥結就在這裡。

  -p --perms # 保留權限
-o --owner # 保留owner
-g --group # 同步組

  上面的三個選項,分別同步文件的額權限,屬主和屬組;後果是,我們只能用當前的用戶查看所有備份的資料。切換用戶之後,則沒有對應權限查看。

  因此,我們重裝系統備份所有資料的時候,要慎用-a 選項。

  2)常用的基本選項

  rsync 的基礎選項有:

  -v --verbose # 在終端中報告當前的進度
-r --recursive # 遞歸模式
-t --times # 同步時間戳
-I --ignore-times # 不同步時間戳
-l --links # 創建軟連接
-L, --copy-links # 複製軟連接所指向的位置
-z, --compress # 允許壓縮
-d, --dirs # 只備份目錄樹結構

  以上8個option是rsync命令的基礎部分。

  3)排除和包含特定的文件與目錄

  同步的過程中,我們常常需要排除掉dot文件,比如.git.ssh等,exclude命令就有了用武之地

  --exclude={.ssh,.git,.config}

  -exclude-from=FILE選項提供了更貼心的服務,我們可以將經常要排除掉的目錄寫進專門的文件。此文件中,我們可以應用#和;備註,rsync命令會自動忽略,同時也會跳過空白行。

  與『exclude』相對應的是 『include』。如果不使用 {},我們可以寫成多行的模式:

  rsync -av ~/Documents \
--include=~/Public \
--include=~/Music \
--include=~/Videos \
--include=~/Downloads \
/media/spiritme/disk/

  除了include 和exclude 之外,rsync還準備了根據文件的大小實施篩選的選項:

  --max-size=SIZE # 篩選掉大於此SIZE的文件
--min-size=SIZE # 排除掉小於此SIZE的文件

  4)rsync 命令的核心

  --update 選項是rsync命令的靈魂。根據rsync十分貼心的算法,destination 中時間戳晚於source中的文件不會被覆蓋掉。

  與 --update 選項協同作戰的還有--delete選項,將刪除掉destination中多餘的目錄與文件。

  與--delete 呼應的是--existing 選項,只同步在目標位置存在的文件,而不創建新的文件。

  以上三個選項乃是rsync命令的核心部分。

  我們還可以更好的監控rsync的工作進度以及生成最終的報告。

  --progress會列印檔期的進度

  782448 63% 110.64kB/s 0:00:04 # 與 -h 搭配使用

  -i, --itemize-changes將生成所有變更的報告。

  5)改變 rsync 算法的選項

  -W, --whole-file選項會改變rsync的算法。關閉其默認的 delta-transfer algorithm,而將文件整體移動。當然如果是在本地執行rsync,-W 則是默認行為。

  -c, --checksum選項將改變rsync默認的『quick-check』算法。

  6)收尾總結

  我們從具體問題『rsync-a' 命令導致的權限問題出發,遵循循序漸進的邏輯分別探討了:

  1)快捷方式 rsync -a2)常用的8個基本選項3)排除和包含特定的文件與目錄的方法4)rsync 命令的核心5)改變 rsync 算法的選項

  

  


本文地址:https://www.linuxprobe.com/rsync-backup.html

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關焦點

  • 如何在使用 scp 命令時遞歸地排除文件
    如何使用 rsync 命令排除文件語法是:rsync av -e ssh--exclude='*.out'/path/to/source/ user@hostB:/path/to/dest/這裡:-a :遞歸到目錄,即複製所有文件和子目錄。
  • 國產作業系統Deepin之系統備份還原
    Linux系統是非常重視安全,對用戶權限也做出了限制,所以在進行軟體安裝之前,我們要先熟悉一下用戶權限:SuperUser:超級用戶,對計算機擁有絕對的控制權系統內建用戶:為滿足相應的系統進程對文件屬主而建立的,不能登錄普通用戶:在安裝linux時創建的用戶,也可以在「終端」程序中以超級用戶的身份創建Linux在進行軟體安裝時,常常要用sudo作為命令的開始
  • Qt5如何備份mariaDB資料庫
    以前備份資料庫都是用資料庫管理軟體。那該如何在應用軟體中備份資料庫呢?這裡我是用資料庫自帶的命令:mysqldump.P3306 xt users>d:/user.sql2.導出多張表導出多張表在導出單個表的基礎上,多加了--databases和--tables舉例導出多張表:mysqldump -uroot -proot --databases test --tables t1 t2>two.sqlqt的QProcess類可以同於執行外部程序和命令
  • 快速了解如何備份與還原收藏的網頁以及備份與還原QQ的聊天記錄
    大家好,我是波仔,今天又來跟大家一起分享備份與還原的知識,今天我們來聊一下 快速備份與還原收藏的網頁以及備份與還原QQ的聊天記錄吧。備份與還原收藏的網頁瀏覽器收藏夾收藏著用戶經常訪問的網頁地址,重裝系統後這些記錄就會全部被清除,給用戶造成很大的不便,因此備份收藏夾是很有必要的。下面以搜狗瀏覽器為例介紹如何備份與還原收藏夾,具體操作方法如下:第1步:選擇「導入/導出」命令,打開搜狗瀏覽器。①在菜單欄中單擊「收藏」菜單項。②選擇「導入/導出」命令。
  • Linux命令cheat的安裝和使用
    大家好,今天周二,還是和往常一樣,沒有精神,每天坐在電腦前一坐就是一天,感覺身體也是一天不如一天了,不說這些,今天說一下Linux命令cheat, cheat 允許你在命令行中創建和查看交互式的速查表cheatsheet。它能幫助提醒 *nix 系統管理員他們經常使用但還沒頻繁到會記住的命令的選項,raksmart伺服器。
  • 另類的GHOST,適合SSD硬碟微軟Windows版本的FFU鏡像備份和還原
    日常的維護中GHOST是基於扇區的備份還原。Windows 10除開之前的WIM映像備份和還原。微軟Windows 10從1709版本之後開始,系統支持FFU的映像格式。這樣我們就可以通過該格式來實現Windows 10的系統備份和還原。
  • 如何使用Ghost備份與還原作業系統
    大家好,我是波仔,非常高興來跟大家一起分享電腦知識,今天我們來分享一下如何使用Ghost備份與還原作業系統。便用 Ghost 備份與還原系統目前流行的系統備份與還原軟體是美國賽門鐵克公司推出的一款出色的磁碟備份還原工具 Ghost,可以實現 FAT16、FAT32、NTFS和OS2等多種硬碟分區格式的分區及硬碟的備份還原。
  • Redis持久化和備份
    內容導讀如果資料庫的數據文件結構組織不合理,可能就會導致數據完全不能恢復的狀況出現。而是通過配置數據同步備份的方式,在數據文件損壞後通過數據備份來進行恢復。實際上MongoDB在不開啟journaling日誌,通過配置Replica Sets時就是這種情況。
  • linux下configure命令詳細介紹
    供大家參考'configure'腳本有大量的命令行選項.對不同的軟體包來說,這些選項可能會有變化,但是許多基本的選項是不會改變的.帶上'--help'選項執行'configure'腳本可以看到可用的所有選項.儘管許多選項是很少用到的,但是當你為了特殊的需求而configure一個包時,知道他們的存在是很有益處的.下面對每一個選項進行簡略的介紹:--cache-file=FILE
  • 深度作業系統20 1003更新發布 新增備份還原等功能
    11月14日消息 深度作業系統 20 1003 更新現已發布(11031.106 build),新增備份還原、深度下載器、深度瀏覽器。   其中,備份還原支持系統備份、全盤備份、手動還原、還原所有設置等功能。   據了解,深度瀏覽器則採用全新簡約設計。
  • Linux基礎命令:作為開發人員,你還不知道嘛?
    別再用滑鼠在GUI中點來點去了,你可以使用效率更高的命令行來完成相同的工作。如果想讓命令行用得順手,那麼有些命令是必須了解的。這些命令很基本,且很重要。要為命令行的使用打下堅實的基礎,就必須掌握這些命令。  本文適用於想更好地使用Linux命令行的讀者。沒有豐富的命令行經驗也是完全可以讀懂本文的,已經習慣使用Linux命令行的讀者也不必擔心從本文中學不到東西。那麼我們開始吧!
  • Solaris 10調度任務:crontab命令使用
    可以通過5個欄位調整頻率:分、小時、月中日、月份和周中的日期(如周一,周二)。表10-1總結了cron作業的調度選項。也可以不使用1-12的數字,而是使用月份名的前三個字母,比如Jan或Mayf5周中日0~70和7都代表星期日。還可以使用名稱的前三個字母,比如Mon或Wed  表10-1  cron作業的調度選項  以上這5個參數指定任何調度計劃。
  • DOS命令大全,黑客必知的DOS命令集合
    DOS命令全集一般來說dos命令都是在dos程序中進行的,如果電腦中安裝有dos程序可以從開機選項中選擇進入,在windows 系統中我們還可以從開始運行中輸入cmd命令進入作業系統中的dos命令,如下圖:嚴格的說,windows 中的命令窗口並不是真正意義上的dos操作界面,其功能並不全面,真正的dos程序是在電腦中沒進入系統而進入的dos界面
  • 如何在Linux上使用tar命令解壓和壓縮文件
    inux上的tar命令通常用來創建名為.tar.gz或.tgz的歸檔文件,也被稱為「壓縮包」。該命令有大量的選擇,但你只需要記住幾個字母來快速創建tar歸檔。 tar命令可以提取生成的檔案了。包含在Linux發行版的GNU tar命令集成壓縮。
  • Linux基礎命令介紹六:網絡
    [root@centos7 ~]#    其中命令ssh-keygen用來生成公鑰私鑰,選項-t指明密鑰類型。之後使用命令ssh-copy-id將公鑰發送至目標主機,這裡需要輸入目標主機用戶密碼。 如果需要使用另外的用戶登錄系統則執行ssh user@host 我們可以用tar命令結合ssh和管道,將本地(遠程)文件備份到遠程(本地): tar zc /home/temp | ssh user@host "tar xz"  #本地temp目錄備份到遠程 ssh user@host "tar cz /home/temp" | tar xz  #遠程