自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 rsync 來備份 Linux 系統(tǒng)

系統(tǒng) Linux 系統(tǒng)運維
本文主要探索 rsync 在備份方案中的作用。

[[184422]]

在系統(tǒng)管理員的工作中備份無疑是一個重要的部分。當(dāng)沒有完整備份或者良好規(guī)劃的備份和實施時,就可能或早或晚不可挽回地丟失重要的數(shù)據(jù)。

所有公司,無論大小,都運營在數(shù)據(jù)之上??紤]到丟失業(yè)務(wù)數(shù)據(jù)造成的經(jīng)濟和業(yè)務(wù)損失,從最小的個人公司到***的跨國企業(yè),沒有一個公司能在丟失大部分?jǐn)?shù)據(jù)以后得以幸存。你的辦公室可以通過保險賠償重建,但是你的數(shù)據(jù)就不可能再恢復(fù)了。

這里提到的丟失是指數(shù)據(jù)的完全損壞。而不是指數(shù)據(jù)被偷走,那是另一種災(zāi)難。我這里說的是數(shù)據(jù)被完全摧毀。

即使你只是個人用戶而不是一個企業(yè),備份你自己的數(shù)據(jù)也是非常重要的,我有二十年來的個人財務(wù)數(shù)據(jù)和我現(xiàn)在已經(jīng)關(guān)閉的企業(yè)的數(shù)據(jù),以及大量的電子發(fā)票。也包括近年來我創(chuàng)作的大量不同類型的文檔、報告和數(shù)據(jù)報表。我不想失去任何這些數(shù)據(jù)。

所以備份是我數(shù)據(jù)長期安全的必要保障。

備份軟件選擇

有許多軟件可以執(zhí)行備份。大多數(shù) Linux 發(fā)行版提供至少一種開源的備份軟件。同時也有許多商業(yè)備份軟件,但是這些都不符合我的需求,所以我決定使用基礎(chǔ)的 Linux 工具來進(jìn)行備份。

在我為 Open Source Yearbook 寫的文章, ***搭檔之 2015:tar 和 ssh 中,我說明了昂貴的商業(yè)備份軟件在設(shè)計實施可行的備份計劃中并不是必要的。

從去年開始我嘗試了另一種選擇, rsync 命令,它有許多我已經(jīng)從中受益的有趣特性。我的主要需求是所創(chuàng)建的備份,用戶不需要解壓備份壓縮包就能定位和恢復(fù)文件,以便節(jié)約創(chuàng)建備份的時間。

這篇文章的目的只是為了說明 rsync 在我的備份方案中的作用。并不是 rsync 的全部能力或者它的各種適用場景的概覽。

rsync 命令

Andrew Tridgell 和 Paul Mackerras 編寫了 rsync ,***發(fā)布于 1996 年。它的目標(biāo)是向另一臺電腦同步文件。你注意到了他們?yōu)槭裁慈∵@個名字了嗎(remotely synchronize)?它是大多數(shù)發(fā)行版都提供的開源軟件。

rsync 能夠用于同步兩個目錄或目錄樹,無論它們是在同一個計算機上還是不同的計算機上,而且不僅如此,它還能做到更多。它創(chuàng)建或者更新的目錄與源目錄完全一樣。新的目錄不是以 tar 或 zip 等打包存儲,而是普通的目錄和文件,常見的 Linux 工具都能輕松訪問,而這正是我所需要的。

rsync 的最重要的特性之一是它處理源目錄被修改的已有文件的方式。它使用分塊校驗來比較源文件和目標(biāo)文件,而不是從源把整個文件復(fù)制過去。如果兩個文件所有塊的校驗和都相同,那么就不用傳輸數(shù)據(jù)。否則只有被改變的塊被傳輸。這樣節(jié)約了遠(yuǎn)程同步消耗的大量時間和帶寬。比如,我***次使用 rsync 腳本來把我所有的主機備份到一個外接的大型 usb 硬盤上需要三個小時,因為所有的數(shù)據(jù)都需要傳輸過去。而接下來的備份需要的時間就只是 3 到 8 分鐘,這取決于上次備份以來創(chuàng)建和改變了多少文件。我使用 time 命令來記錄實際花費的時間。昨天晚上,我只花了三分鐘來從六個遠(yuǎn)程系統(tǒng)和本地工作站備份大概 750 Gb 數(shù)據(jù)。實際上只有在白天改變的幾百 Mb 數(shù)據(jù)需要備份。

下面的命令可以用來同步兩個目錄及其任意子目錄的內(nèi)容。也就是說,在新目錄的內(nèi)容和源目錄同步完之后,它們的內(nèi)容完全一樣。

  1. rsync -aH sourcedir targetdir 

-a 選項表示歸檔模式,它會保持權(quán)限、所有關(guān)系和符號(軟)鏈接。-H 選項用來保持硬鏈接。注意源目錄和目標(biāo)目錄都可以在遠(yuǎn)程主機上。

假設(shè)昨天我們使用 rsync 同步了兩個目錄。今天我們想再同步一次,但是我們從源目錄刪除了一些文件。rsync 默認(rèn)只復(fù)制新的和改變過的文件到新目錄里,而不去改變新目錄里被我們刪除的文件,但是如果你想讓那些在源目錄里被刪除的文件在新目錄里也被刪除,那么你可以加上 --delete 選項來刪除。

另一個有趣的選項,也是我個人最喜歡的選項是 --link-dest,因為它極大地增加了 rsync 的能力和靈活性。--link-dest 使每日備份只花費很少的額外空間和很短的時間。

用這個選項指定前一天的備份目錄,以及今天的備份目錄,然后 rsync 會創(chuàng)建今天的新備份目錄,并將昨天備份目錄里的每一個文件在今天的備份目錄中創(chuàng)建硬鏈接?,F(xiàn)在我們在今天的備份目錄中有一大堆指向昨天備份的硬鏈接。文件沒有被重復(fù)創(chuàng)建,而是創(chuàng)建了一些硬鏈接。對于硬鏈接,在 Wikipedia 中有非常詳細(xì)的描述。而在用昨天的備份目錄文件的硬鏈接創(chuàng)建了今天的備份之后,rsync 和平常一樣進(jìn)行備份,如果在文件中檢測到了變化,就不會做硬鏈接,而是從昨天的備份目錄里復(fù)制一個文件的副本,再把源文件中變化的部分復(fù)制過去。(LCTT 譯注:此處疑似原文表述不清,參見 generator.c 的 try_dests_reg 函數(shù),先根據(jù) match_level選擇復(fù)制或者硬鏈接,而不是創(chuàng)建硬鏈接后再判斷 match_level)

現(xiàn)在我們的命令類似于下面這樣。

  1. rsync -aH --delete --link-dest=yesterdaystargetdir sourcedir todaystargetdir 

你也可能想要排除一些不想要備份的目錄或者文件。那么就可以使用 --exclude 選項。用這個選項加上你想排除文件或目錄的模式。你可以用下面的新命令來排除瀏覽器的緩存。

  1. rsync -aH --delete --exclude Cache --link-dest=yesterdaystargetdir sourcedir todaystargetdir 

注意:你想排除的每一個文件的模式前面都分別需要加上 --exclude 選項。

rsync 可以同步遠(yuǎn)程主機,無論是作為同步源頭還是目標(biāo)。再舉一個例子,我們假設(shè)想要把名為 remote1 的遠(yuǎn)程主機的目錄同步到本地。因為 ssh 作為與遠(yuǎn)程主機交換數(shù)據(jù)的默認(rèn)協(xié)議,我一直使用 ssh 選項?,F(xiàn)在命令類似于下面這樣。

  1. rsync -aH -e ssh --delete --exclude Cache --link-dest=yesterdaystargetdir remote1:sourcedir todaystargetdir 

這就是我的 rsync 備份命令的最終版本。

你可以依靠 rsync 的大量選項來定制你的同步過程。大多數(shù)情況而言,我剛剛描述的簡單命令就足以勝任我的個人需要。你可以閱讀 rsync 豐富的文檔來了解它的其他能力。

部署備份

我的備份自動運行因為—“萬物皆可自動化”。我寫了一個 BASH 腳本使用 rsync 創(chuàng)建每天的備份。包括確保備份介質(zhì)被掛載,生成每天的備份目錄的名字,以及在備份介質(zhì)中創(chuàng)建合適的目錄結(jié)構(gòu),***執(zhí)行真正的備份再卸載備份介質(zhì)。

我用 cron 每天早晨執(zhí)行腳本確保我永遠(yuǎn)不會忘記備份。

我的腳本 rsbu 和配置文件 rsbu.conf 可以在 GitHub 上獲取。

恢復(fù)測試

所有沒有經(jīng)過測試的備份計劃都不完整的。你可以通過測試恢復(fù)某個文件或者整個目錄,以確保備份在照常工作并且可以通過它來在數(shù)據(jù)全部丟失后恢復(fù)。我見過太多備份由于種種理由失敗,以及由于缺乏測試忽略的問題導(dǎo)致寶貴的數(shù)據(jù)被丟失。

選擇一個文件恢復(fù)到比如 /tmp 的測試目錄,這樣你就不會覆蓋任何備份后被更新的文件。驗證文件的內(nèi)容是否是你預(yù)期的?;謴?fù)用 rsync 備份的文件僅僅只是找到你的備份文件然后把它復(fù)制到你想恢復(fù)的地方去那樣簡單。

我有幾次不得不恢復(fù)我的個人文件,偶爾是整個目錄。大多數(shù)是自己意外刪除了文件或者目錄。有幾次是因為硬盤崩潰。這些備份遲早會派上用場。

***一步

但僅僅創(chuàng)建備份并不能拯救你的業(yè)務(wù),你需要定期的地創(chuàng)建備份,使最近的一次備份儲存在另一臺遠(yuǎn)程機器上,如果有可能,放在另外一個建筑物中或幾英里之外。這樣可以確保大規(guī)模的災(zāi)難不會摧毀你的所有備份。

對于小型企業(yè)的一個合理選擇是在可移動介質(zhì)上做每日備份,晚上把***的備份帶回家里,第二天早上把更早的備份帶到辦公室。你就會有幾個輪流的拷貝。甚至可以把***的備份帶到銀行并放到你的保管箱里,然后帶回之前的備份。

責(zé)任編輯:趙寧寧 來源: Linux中國
相關(guān)推薦

2010-09-14 09:15:03

RsyncLinux備份遠(yuǎn)程數(shù)據(jù)同步

2021-06-18 10:28:56

Linuxrsync命令

2021-06-09 08:05:02

Linux 備份數(shù)據(jù)

2009-03-09 20:57:28

linuxrsync文件同步備份

2009-12-23 17:22:18

Linux系統(tǒng)rsyn

2009-11-19 16:04:12

2009-10-22 09:32:51

ghostlinux系統(tǒng)備份

2019-05-17 08:24:11

LinuxLinux備份rsync命令

2014-12-23 09:37:09

Linuxrsync

2010-06-01 18:14:55

Rsync 使用

2011-10-09 09:26:04

ubuntursync服務(wù)器

2019-03-04 10:45:57

Linux Cockp系統(tǒng)性能命令

2015-01-04 10:15:49

Linux備份

2023-01-31 08:34:19

2009-12-28 15:44:45

Fedora rsyn

2010-12-31 14:42:51

ExchangeSer

2022-04-14 07:49:03

nmon監(jiān)控Linux

2020-12-16 20:30:24

Linux系統(tǒng)備份系統(tǒng)恢復(fù)

2020-12-17 08:14:30

Linuxrsync備份

2010-06-17 14:18:15

Rsync 使用
點贊
收藏

51CTO技術(shù)棧公眾號