這篇文章主要介紹“如何使用rsync來(lái)備份Linux 系統(tǒng)”,在日常操作中,相信很多人在如何使用rsync來(lái)備份Linux 系統(tǒng)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何使用rsync來(lái)備份Linux 系統(tǒng)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)是一家集做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)絡(luò)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。
rsync 命令
Andrew Tridgell 和 Paul Mackerras 編寫了 rsync ,***發(fā)布于 1996 年。它的目標(biāo)是向另一臺(tái)電腦同步文件。你注意到了他們?yōu)槭裁慈∵@個(gè)名字了嗎(remotely synchronize)?它是大多數(shù)發(fā)行版都提供的開(kāi)源軟件。
rsync 能夠用于同步兩個(gè)目錄或目錄樹(shù),無(wú)論它們是在同一個(gè)計(jì)算機(jī)上還是不同的計(jì)算機(jī)上,而且不僅如此,它還能做到更多。它創(chuàng)建或者更新的目錄與源目錄完全一樣。新的目錄不是以 tar 或 zip 等打包存儲(chǔ),而是普通的目錄和文件,常見(jiàn)的 Linux 工具都能輕松訪問(wèn),而這正是我所需要的。
rsync 的最重要的特性之一是它處理源目錄被修改的已有文件的方式。它使用分塊校驗(yàn)來(lái)比較源文件和目標(biāo)文件,而不是從源把整個(gè)文件復(fù)制過(guò)去。如果兩個(gè)文件所有塊的校驗(yàn)和都相同,那么就不用傳輸數(shù)據(jù)。否則只有被改變的塊被傳輸。這樣節(jié)約了遠(yuǎn)程同步消耗的大量時(shí)間和帶寬。比如,我***次使用 rsync 腳本來(lái)把我所有的主機(jī)備份到一個(gè)外接的大型 usb 硬盤上需要三個(gè)小時(shí),因?yàn)樗械臄?shù)據(jù)都需要傳輸過(guò)去。而接下來(lái)的備份需要的時(shí)間就只是 3 到 8 分鐘,這取決于上次備份以來(lái)創(chuàng)建和改變了多少文件。我使用 time 命令來(lái)記錄實(shí)際花費(fèi)的時(shí)間。昨天晚上,我只花了三分鐘來(lái)從六個(gè)遠(yuǎn)程系統(tǒng)和本地工作站備份大概 750 Gb 數(shù)據(jù)。實(shí)際上只有在白天改變的幾百 Mb 數(shù)據(jù)需要備份。
下面的命令可以用來(lái)同步兩個(gè)目錄及其任意子目錄的內(nèi)容。也就是說(shuō),在新目錄的內(nèi)容和源目錄同步完之后,它們的內(nèi)容完全一樣。
rsync -aH sourcedir targetdir
-a 選項(xiàng)表示歸檔模式,它會(huì)保持權(quán)限、所有關(guān)系和符號(hào)(軟)鏈接。-H 選項(xiàng)用來(lái)保持硬鏈接。注意源目錄和目標(biāo)目錄都可以在遠(yuǎn)程主機(jī)上。
假設(shè)昨天我們使用 rsync 同步了兩個(gè)目錄。今天我們想再同步一次,但是我們從源目錄刪除了一些文件。rsync 默認(rèn)只復(fù)制新的和改變過(guò)的文件到新目錄里,而不去改變新目錄里被我們刪除的文件,但是如果你想讓那些在源目錄里被刪除的文件在新目錄里也被刪除,那么你可以加上 --delete 選項(xiàng)來(lái)刪除。
另一個(gè)有趣的選項(xiàng),也是我個(gè)人最喜歡的選項(xiàng)是 --link-dest,因?yàn)樗鼧O大地增加了 rsync 的能力和靈活性。--link-dest 使每日備份只花費(fèi)很少的額外空間和很短的時(shí)間。
用這個(gè)選項(xiàng)指定前一天的備份目錄,以及今天的備份目錄,然后 rsync 會(huì)創(chuàng)建今天的新備份目錄,并將昨天備份目錄里的每一個(gè)文件在今天的備份目錄中創(chuàng)建硬鏈接。現(xiàn)在我們?cè)诮裉斓膫浞菽夸浿杏幸淮蠖阎赶蜃蛱靷浞莸挠叉溄?。文件沒(méi)有被重復(fù)創(chuàng)建,而是創(chuàng)建了一些硬鏈接。對(duì)于硬鏈接,在 Wikipedia 中有非常詳細(xì)的描述。而在用昨天的備份目錄文件的硬鏈接創(chuàng)建了今天的備份之后,rsync 和平常一樣進(jìn)行備份,如果在文件中檢測(cè)到了變化,就不會(huì)做硬鏈接,而是從昨天的備份目錄里復(fù)制一個(gè)文件的副本,再把源文件中變化的部分復(fù)制過(guò)去。(LCTT 譯注:此處疑似原文表述不清,參見(jiàn) generator.c 的 try_dests_reg 函數(shù),先根據(jù) match_level選擇復(fù)制或者硬鏈接,而不是創(chuàng)建硬鏈接后再判斷 match_level)
現(xiàn)在我們的命令類似于下面這樣。
rsync -aH --delete --link-dest=yesterdaystargetdir sourcedir todaystargetdir
你也可能想要排除一些不想要備份的目錄或者文件。那么就可以使用 --exclude 選項(xiàng)。用這個(gè)選項(xiàng)加上你想排除文件或目錄的模式。你可以用下面的新命令來(lái)排除瀏覽器的緩存。
rsync -aH --delete --exclude Cache --link-dest=yesterdaystargetdir sourcedir todaystargetdir
注意:你想排除的每一個(gè)文件的模式前面都分別需要加上 --exclude 選項(xiàng)。
rsync 可以同步遠(yuǎn)程主機(jī),無(wú)論是作為同步源頭還是目標(biāo)。再舉一個(gè)例子,我們假設(shè)想要把名為 remote1 的遠(yuǎn)程主機(jī)的目錄同步到本地。因?yàn)?ssh 作為與遠(yuǎn)程主機(jī)交換數(shù)據(jù)的默認(rèn)協(xié)議,我一直使用 ssh 選項(xiàng)?,F(xiàn)在命令類似于下面這樣。
rsync -aH -e ssh --delete --exclude Cache --link-dest=yesterdaystargetdir remote1:sourcedir todaystargetdir
這就是我的 rsync 備份命令的最終版本。
你可以依靠 rsync 的大量選項(xiàng)來(lái)定制你的同步過(guò)程。大多數(shù)情況而言,我剛剛描述的簡(jiǎn)單命令就足以勝任我的個(gè)人需要。你可以閱讀 rsync 豐富的文檔來(lái)了解它的其他能力。
部署備份
我的備份自動(dòng)運(yùn)行因?yàn)?amp;mdash;“萬(wàn)物皆可自動(dòng)化”。我寫了一個(gè) BASH 腳本使用 rsync 創(chuàng)建每天的備份。包括確保備份介質(zhì)被掛載,生成每天的備份目錄的名字,以及在備份介質(zhì)中創(chuàng)建合適的目錄結(jié)構(gòu),***執(zhí)行真正的備份再卸載備份介質(zhì)。
我用 cron 每天早晨執(zhí)行腳本確保我永遠(yuǎn)不會(huì)忘記備份。
我的腳本 rsbu 和配置文件 rsbu.conf 可以在 GitHub 上獲取。
恢復(fù)測(cè)試
所有沒(méi)有經(jīng)過(guò)測(cè)試的備份計(jì)劃都不完整的。你可以通過(guò)測(cè)試恢復(fù)某個(gè)文件或者整個(gè)目錄,以確保備份在照常工作并且可以通過(guò)它來(lái)在數(shù)據(jù)全部丟失后恢復(fù)。我見(jiàn)過(guò)太多備份由于種種理由失敗,以及由于缺乏測(cè)試忽略的問(wèn)題導(dǎo)致寶貴的數(shù)據(jù)被丟失。
選擇一個(gè)文件恢復(fù)到比如 /tmp 的測(cè)試目錄,這樣你就不會(huì)覆蓋任何備份后被更新的文件。驗(yàn)證文件的內(nèi)容是否是你預(yù)期的?;謴?fù)用 rsync 備份的文件僅僅只是找到你的備份文件然后把它復(fù)制到你想恢復(fù)的地方去那樣簡(jiǎn)單。
我有幾次不得不恢復(fù)我的個(gè)人文件,偶爾是整個(gè)目錄。大多數(shù)是自己意外刪除了文件或者目錄。有幾次是因?yàn)橛脖P崩潰。這些備份遲早會(huì)派上用場(chǎng)。
***一步
但僅僅創(chuàng)建備份并不能拯救你的業(yè)務(wù),你需要定期的地創(chuàng)建備份,使最近的一次備份儲(chǔ)存在另一臺(tái)遠(yuǎn)程機(jī)器上,如果有可能,放在另外一個(gè)建筑物中或幾英里之外。這樣可以確保大規(guī)模的災(zāi)難不會(huì)摧毀你的所有備份。
對(duì)于小型企業(yè)的一個(gè)合理選擇是在可移動(dòng)介質(zhì)上做每日備份,晚上把***的備份帶回家里,第二天早上把更早的備份帶到辦公室。你就會(huì)有幾個(gè)輪流的拷貝。甚至可以把***的備份帶到銀行并放到你的保管箱里,然后帶回之前的備份。
到此,關(guān)于“如何使用rsync來(lái)備份Linux 系統(tǒng)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
分享文章:如何使用rsync來(lái)備份Linux系統(tǒng)
路徑分享:http://www.jbt999.com/article16/pdpcgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化、Google、電子商務(wù)、建站公司、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)