如何使用 rsync 備份 Linux 系統的一些介紹
備份一直是 世界的熱門話題。回到 2017,David Both 為 Opensource.com 的讀者在使用 rsync 備份 Linux 系統方面提了一些建議,在這年的更早時候,他發起了一項問卷調查詢問大家,在 Linux 中你的 /home 目錄的主要備份策略是什麼,在今年的另一個問卷調查中,Don Watkins 問到,你使用哪種開源備份解決方案。
我的回覆是 rsync。我真的非常喜歡 rsync!市場上有大量大而複雜的工具,對於管理磁帶機或者儲存庫裝置,這些可能是必要的,但是可能你需要的只是一個簡單的開源 行工具。
我為一個大概擁有 35,000 開發者並有著幾十 TB 檔案的全球性機構管理二進位制倉庫。我經常一次移動或者歸檔上百 GB 的資料。使用的是 rsync。這種經歷使我對這個簡單的工具充滿信心。(所以,是的,我在家使用它來備份我的 Linux 系統)
基礎的 rsync 很簡單。
rsync -av 源目錄 目的地目錄
實際上,在各種指南中教的 rsync 命令在大多數通用情況下都執行的很好。然而,假設我們需要備份大量的資料。例如包含 2,000 個子目錄的目錄,每個包含 50GB 到 700GB 的資料。在這個目錄執行 rsync 可能需要大量時間,尤其是當你使用校驗選項時(我傾向使用)。
當我們試圖同步大量資料或者透過慢的網路連線時,可能遇到效能問題。讓我給你展示一些我使用的方法來確保好的效能和可靠性。
rsync 執行時出現的第一行是:“正在傳送增量檔案列表。” 如果你在網上搜尋這一行,你將看到很多類似的問題:為什麼它一直執行,或者為什麼它似乎掛起了。
這裡是一個基於這個場景的例子。假設我們有一個 /storage 的目錄,我們想要備份到一個外部 USB 磁碟,我們可以使用下面的命令:
rsync -cav /storage /media/WDPassport
-c 選項告訴 rsync 使用檔案校驗和而不是時間戳來決定改變的檔案,這通常消耗的時間更久。為了分解 /storage 目錄,我透過子目錄同步,使用 find 命令。這是一個例子:
find /storage -type d -exec rsync -cav {} /media/WDPassport \;
這看起來可以,但是如果 /storage 目錄有任何檔案,它們將被跳過。因此,我們如何同步 /storage 目錄中的檔案呢?同樣有一個細微的差別是這些選項將造成 rsync 會同步 . 目錄,該目錄是源目錄自身;這意味著它會同步子目錄兩次,這並不是我們想要的。
長話短說,我的解決方案是一個 “雙-遞增” 。這允許我分解一個目錄,例如,當你的家目錄有多個大的目錄,例如音樂或者家庭照片時,分解 /home 目錄為單個的使用者家目錄。
這是我的 的一個例子:
HOMES="alan" DRIVE="/media/WDPassport" for HOME in $HOMES; do cd /home/$HOME rsync -cdlptgov --delete . /$DRIVE/$HOME find . -maxdepth 1 -type d -not -name "." -exec rsync -crlptgov --delete {} /$DRIVE/$HOME \; done
第一個 rsync 命令複製它在源目錄中發現的檔案和目錄。然而,它將目錄留著不處理,因此我們能夠透過 find 命令迭代它們。這透過傳遞 -d 引數來完成,它告訴 rsync 不要遞迴目錄。
-d, --dirs 傳輸目錄而不遞迴
然後 find 命令傳遞每個目錄來單獨執行 rsync。之後 rsync 複製目錄的內容。這透過傳遞 -r 引數來完成,它告訴 rsync 要遞迴目錄。
-r, --recursive 遞迴進入目錄
這使得 rsync 使用的增量檔案保持在一個合理的大小。
大多數 rsync 指南為了簡便使用 -a (或者 archive) 引數。這實際是一個複合引數。
-a, --archive 歸檔模式;等價於 -rlptgoD(沒有 -H,-A,-X)
我傳遞的其他引數包含在 a 中;這些是 -l、-p、-t、-g和 -o。
-l, --links 複製符號連結作為符號連結 -p, --perms 保留許可權 -t, --times 保留修改時間 -g, --group 保留組 -o, --owner 保留擁有者(只適用於超級管理員)
--delete 選項告訴 rsync 刪除目的地目錄中所有在源目錄不存在的任意檔案。這種方式,執行的結果僅僅是複製。你同樣可以排除 .Trash 目錄或者 MacOS 建立的 .DS_Store 檔案。
-not -name ".Trash*" -not -name ".DS_Store"
最後一條建議: rsync 可以是破壞性的命令。幸運的是,它的睿智的創造者提供了 “空執行” 的能力。如果我們加入 n 選項,rsync 會顯示預期的輸出但不寫任何資料。
`rsync -cdlptgovn --delete . /$DRIVE/$HOME`
這個指令碼適用於非常大的儲存規模和高延遲或者慢連結的情況。一如既往,我確信仍有提升的空間。如果你有任何建議,請在下方評論中分享。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2645486/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 rsync 來備份 Linux 系統Linux
- 圖形介面備份Linux系統介紹薦Linux
- Linux下如何使用Rsync備份伺服器重要資料Linux伺服器
- Linux 中 rsync 備份資料使用例項Linux
- Linux中rsync備份資料使用例項Linux
- 使用inotify-tools與rsync構建實時備份系統
- 使用rsync同步網路備份
- 同步備份工具Rsync有什麼特性?linux系統快速入門Linux
- mydumper備份工具介紹與使用
- Linux-中-rsync-備份資料使用例項Linux
- [rsync]——rsync檔案同步和備份
- linux下rsync和tar增量備份梳理Linux
- Mysqldump備份的基本流程介紹MySql
- 在Linux中,如何建立檔案系統的備份?Linux
- Linux 系統的備份恢復Linux
- MySQL資料庫備份工具Mydumper使用介紹MySql資料庫
- 如何使用 backupninja 來備份 Debian 系統
- Linux 系統的備份與恢復Linux
- 如何在Linux下使用rsyncLinux
- windows10如何備份系統_windows10製作系統備份Windows
- Linux系統調優介紹Linux
- linux作業系統介紹Linux作業系統
- linux常用的幾個系統介紹Linux
- Linux系統的病毒歷史介紹Linux
- Oracle 備份和恢復介紹Oracle
- MongoDB備份方式詳細介紹MongoDB
- 如何備份win10系統映象_備份win10系統映象的步驟Win10
- Linux 上使用 backup-manager 進行系統備份Linux
- 安卓備份系統教程安卓備份系統教程安卓
- 如何備份win10_win10系統怎麼備份Win10
- Linux 檔案系統基本介紹Linux
- Linux作業系統介紹(轉)Linux作業系統
- rsync 守護程式備份報錯
- Rsync資料遠端同步備份
- Linux 主要的發行系統版本介紹Linux
- Linux 系統上交換空間的介紹Linux
- Oracle備份和恢復工具介紹Oracle
- Ubuntu/Linux入門介紹-Linux系統簡介(轉)UbuntuLinux