最近更新日期:2005/10/25
1. 誰需要備份資料
2. 哪些 Linux 資料具有備份的意義 3. 選擇的備份裝置 4. 備份的種類: 完整備份(full backup), 部分備份(Implement backup) 5. 備份的工具選擇: tar, dd, cpio... 6. VBird 的備份策略與 scripts: 6.1 系統備份 6.2 每日備份 6.3 遠端備份 7. 本章習題練習 8. 針對本文的建議:http://phorum.vbird.org/viewtopic.php?t=23896 誰需要備份資料
前面的章節我們提到了相當多的 Linux 系統基礎,這個時候我們再來談一談:『
若您的系統由於不預期的傷害,導致系統發生錯誤,該如何修復?
』這可是個相當大的問題呀!怎麼說呢?又什麼叫做『不預期的傷害?』
好了,假如您的 Linux 系統上面某些 Internet 的服務套件是最新的!也意味著可能是『相對最安全的』,
但是,這個世界目前是閒人相當的多的,你不知道什麼時候會有所謂的『駭客軟體』被提供出來,萬一你在
Internet 上面的服務套件被入侵,導致你的 Linux 系統全毀,這個時候怎麼辦?!
『重新安裝就好啦!』或許您會這麼說,但是,像鳥哥管理的幾個網站的資料,尤其是 MySQL 資料庫的資料,這些都是彌足珍貴的經驗資料,萬一被損毀而就不回來的時候,不是很可惜嗎? 這個還好哩,萬一您是某家銀行的話,呵呵!那麼資料的損毀可就不是能夠等閒視之的!! 關係的可是數千甚至上萬人的身家財產!!這就是備份的重要性了!他可以最起碼的稍微保障我們的資料有另外一份 copy 的備援以達到『安全回復』的基本要求! 如果是針對個人資料的話,那麼在一般桌上型電腦中,Norton 的『 Ghost 』應該算是一套好到不行的備份大師了! 最主要是 Ghost 可以針對整個 partition 來進行備份,所以囉,我們可以將 Windows 系統當中的整個 C 或者是整個 D 槽完整的備份下來。甚至在還原方面也是非常的快速,而且操作簡便! 另外,由於個人桌上型電腦所使用的資料量通常不大,所以當 ghost 完成之後,通常只要將資料燒錄到光碟片當中,大約只要一至兩片的光碟片也就綽綽有餘囉! 那麼將光碟片保存好,這就是最簡易的資料備份模式囉! 此外,由於個人的資料變動性不大,所以資料的備份頻率方面也不需要非常的頻繁! 但是,萬一您的主機有提供 Internet 方面的服務呢?又該如何備份啊? 舉個例子來說,像是我們 Study Area 團隊的討論區網站 http://phorum.study-area.org 提供的是類似 BBS 的討論文章, 雖然資料量不大,但是由於討論區的文件是天天在增加的,每天都有相當多的資訊流入, 由於某些資訊都是屬於重要的人物之留言,這個時候,我們能夠讓機器死掉嗎? 再提到 2002 年左右鳥哥的討論區曾經掛點的問題,以及 2003 年初 Study-Area 討論區掛點的問題,討論區一旦掛點的話,該資料庫內容如果損毀到無法救回來, 嘿嘿!要曉得討論區可不是一個人的心血耶!有的時候(像 Study-Area 討論區)是一群熱心 Linux 的朋友們互相建立交流起來的資料流通網,如果死掉了, 那麼不是讓這些熱血青年的熱情付之一炬了嗎?!所以囉,建立備份的策略是相當的重要的。 基本上,『電腦是一個相當不可靠的機器』這句話在大部分的時間內還是成立的! 常常會聽到說『要電腦正常的工作,最重要的是要去拜拜!』嘿嘿!不要笑!這還是真的哩! 尤其是在日前一些電腦周邊硬體的生產良率 ( 就是將硬體產生出來之後,經過測試, 發現可正常工作的與不能正常工作的硬體總數之比值 ) 越來越差的情況之下,電腦的不穩定狀態實在是越來越嚴重了! 舉個例子來說,鳥哥曾經同時買過同一廠牌的 IxM 30GB 硬碟三顆,回來之後經過一個星期,嘿嘿!掛掉了兩顆!其中一顆是有壞軌,另外一顆是『完全死掉』, 拿去公司要求修理,結果呢?嗯!店家直接拿了一棵新的給我,害我嚇一跳,店家的工程師說 『唉呀!目前這個牌子的良率太差了,所以代理商為了怕麻煩,都會直接拿新的替換給我們啦!』 要曉得的是,當初那一顆完全死掉的硬碟,是我用來備份我的主機資料的.... 好在當時我將備份的資料放在三四個地方,還好.... 所以囉!由於電腦 ( 尤其是目前的電腦,操作頻率太高、硬體良率太差、使用者操作習慣不良、 『某些』作業系統的當機率太高.... ) 的穩定性較差,所以囉!備份的工作就越來越重要了! 那麼一般我們在備份時考慮的因素有哪些呢?
哪些 Linux 資料具有備份的意義
具有備份意義的檔案通常可以粗分為兩大類,一類是系統、一類則是類似網路服務的資料,
那麼各有哪些檔案需要備份的呢?我們就來稍微分析一下。
這方面的檔案主要跟『帳號與系統設定檔』有關係!
主要有哪些帳號的檔案需要備份呢?就是
/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow, /home 底下的使用者家目錄等等,
而由於 Linux 預設的主機資訊設定參數檔都在 /etc/ 底下,所以只要將這個檔案備份下來的話,
那麼幾乎所有的設定檔都會存在的!
至於 /home 底下是每個人的家目錄,自然也需要來備份一番!再來,由於使用者會有郵件吧!所以呢,這個 /var/spool/mail 內容也需要備份呦!另外,由於如果您曾經自行更動過核心,那麼 /boot 裡頭的資訊也就很重要囉!所以囉,這方面的資料您必須要備份的檔案為:
這部份的資料可就多而且複雜了,如果您的網路套件設定都是以原廠提供的為主,那麼您的設定檔案大多是在
/etc 底下,所以這個就沒啥大問題了!但是若您的套件大多來自於自行的安裝,那麼
/usr/local 這個目錄可就相當的重要了!這裡我們假設我們提供的服務套件都是使用原廠的
RPM 安裝的!所以要備份的資料檔案有:
由上面的介紹來看的話,那麼如果您的硬體或者是由於經費的關係而無法全部的資料都予以備份時,
鳥哥建議您至少需要備份這些目錄呦!
有些資料是不需要備份的啦!例如我們在
檔案權限與目錄配置
裡頭提到的 /proc 這個目錄是在記錄目前系統上面正在跑的程序 ( processes
) ,這個資料根本就不需要記錄的呢!所以就把他拿掉!此外,外掛的機器,例如
/mnt 或 /media 裡面都是掛載了其他的硬碟裝置、光碟機、軟碟機等等,這些也不需要備份吧!?
所以囉!底下有些目錄可以不需要備份啦!
選擇的備份裝置
在備份的時候,選擇一個『資料存放的地方』也是很需要考慮的一個因素!
什麼叫做資料存放的地方呢?講個最簡單的例子好了,我們知道說,較為大型的機器都會使用
tap 這一種磁帶機來備份資料,而如果是一般個人電腦的話,很可能是使用類似
Mo 這一種可讀寫式光碟片來存取資料!但是您不要忘記了幾個重要的因素,那就是萬一您的
Linux 主機被偷了呢?這不是不可能的,我們隔壁校區的研究室曾經遭小偷,裡面所有的電腦都被偷走了!包括『
Mo 片』,當他們發現的時候,一開始以為是硬體被偷走了,還好,他們都有習慣進行備份,但是很不幸的,這一次連『備份的
MO 都被拿走了!』怎麼辦?!只能道德勸說小偷先生能夠良心發現的將硬碟拿回來囉!唉∼真慘....
這個時候,所謂的『遠端備援系統』就顯的相當的重要了! 什麼是遠端備援呀!說的太文言了!呵!簡單的說,就是將你的系統資料『備份』到其他的地方去, 例如說我的機器在台南,但是我還有另一部機器在高雄老家,這樣的話,我可以將台南機器上面重要的資料都給他定期的自動的 ftp 回去!也可以將家裡重要的資料給他丟到台南來!這樣的最大優點是可以在台南的機器死掉的時候, 即使是遭小偷,也可以有一個『萬一』的備份所在!但是缺點是∼∼頻寬嚴重的不足! 在這種狀態下,所能採取的策略大概就是『僅將最重要的資料給他 ftp 回去囉!』至於一些只要系統從新安裝就可以回復的咚咚!那就沒有這個必要了!當然囉,如果你的網路是屬於 T1 專線的話,那麼完整備份將資料丟到另一地去,呵呵!也是很可行的啦!只是我沒有那麼好命....唉∼窮人一個∼ 在此同時,我們再來談一談,那麼除了這個『相對較為安全的備份』方法之外, 畢竟這種網路備援系統實在是太耗頻寬了!如果像我們一般家用的 ADSL 根本就是吃不消!那麼怎麼辦!還有其他的方法嗎?喔∼那就只好使用近端的裝置來備份囉! 這也是目前我們最常見到的備份方法!例如一般我們使用的 Tape, Mo, Zip, CD-RW, DVD-RW 還有備份用抽取式硬碟與攜帶式硬碟等等! 那麼在選擇上需要注意些什麼呢?需要注意的地方有幾點:
『備份』基本上在 Linux 主機上面也是蠻耗系統資源的!因為需要將系統的資料拷貝到其他裝置上面去,這個時候
CPU 幾乎是 loading 100%!您總不希望系統就這樣給他掛點吧!?此外,有些系統的資料實在太多咯,
怎麼樣也備份不完!所以囉,越快的儲存裝置是越好的!如果您是個重視速度甚於一切的人,
那麼我覺得抽取式硬碟是個不錯的方式,只不過.....目前我知道的抽取式硬碟都需要冷開機才行,不太符合
Linux 主機 24 小時全年無休的狀態....
但是硬碟真的越來越大、越來越便宜了,不使用速度快的硬碟來備份實在很可惜∼ 加上目前的火線 (IEEE 1394) 以及 USB 2.0 外接式硬碟盒技術已經相當的成熟, 傳輸速度又快,又可以直接熱拔插 (Plug and Play),接上 USB 硬碟, 整個複製一下,傳輸速度理論上可達 480Mbps (約 60 MBytes/second) ,快的哩! 複製完畢,又可以將硬碟帶走,不需要與主機放置在一起,還可以避免同時被偷,真是不錯。 但是,硬碟還是有一定的困擾,那就是『不接電源的硬碟需要很好很好的保養』。 我們知道電腦最好的保養就是常常開機去運作一下,免得長期不開機,造成受潮而損壞。 這個攜帶式硬碟只是偶而才會連上主機來進行備份的資料,除非您額外購買一部防潮箱來放置硬碟, 否則很容易損壞ㄟ!所以,近年來速度越來越快的 DVD-RW 就變的很方便囉!至於 tap ,在速度上完全是落後的.....至於使用第二顆硬碟備份,類似 Raid, 或者是安裝一顆備份的硬碟在 Linux 系統當中,這個方案也很好, 而且速度上絕對是最具優勢的!但是就如同我們剛剛提到的,萬一你的機器被偷了,連帶的, 這顆備份的硬碟自然也就不見了.....
這也是一個需要考量的因素!而且常常是最大考量的因素呢!雖然目前硬碟越來越便宜,
但是畢竟就如同前面說的,抽取式硬碟需要將系統冷開機,而建構在系統內的硬碟又同時具由不安全的成分在,
攜帶式硬碟可能又有不容易保存的特性,這個時候一個大容量的替代方案就顯的很重要了!雖然
CD-RW 與 DVD-RW 可以提供不錯的速度,但是其容量畢竟不足 (目前的 DVD-RW 片最大雖然可以突破
8.7GB ,但是,貴的很哩∼期待新規格趕緊定義出來呢!),
所以說,具有大容量的 tap (磁帶容量最小的一款也可以到達 8 GB 左右!)
就相當的具有這方面的優勢了!而且攜帶方便,存放也容易!更可以帶著走∼∼
在經費不短缺的情況下,我們當然會建議您上面的幾個裝置都買一買,
然後分別在不同的時間進行不同的備份作業(底下我們有些建議的啦!
^_^)!但是如果經費也是需要考量的話,那麼磁帶機這個目前還算貴重的物品可能暫時還動不到!
這個時候近來漸漸便宜的 DVD-RW 就顯的活躍的多了!而且光碟片也可以保存很久的ㄋㄟ∼
當然,目前應該不會有人以軟碟來備份了吧!?呵呵!軟碟可是相當不安全的
(每次我看到有人拿軟碟拷貝資料,我都會要他
copy 完成之後,立刻到另外一部電腦 copy 出來試看看,果不其然,十次裡面有八次對方的軟碟片都有問題∼)
無論如何,如果經費夠的話, Tape 備份資料真的是一個不錯的點子!因為他的高容量讓我好滿意!
再來,如果經費稍微短缺的話,那麼 DVD-RW 經常性的將資料燒錄下來,這也是蠻好的,尤其 DVD
片又不佔空間!再來,如果還是沒有辦法,那麼一顆內建在
Linux 的硬碟用來備份也是不錯的!什麼!!連備份的硬碟都沒有,唉!怎麼跟我一樣∼
這個時候沒辦法啦,用原來的安裝系統的硬碟,多留一個
partition 用來當作備份之用吧(這也是目前鳥哥常用的方法之一!)底下我們來看一看一些常見的裝置代號!
備份的種類
講了好多口水了,還是沒有講到重點,真是的....好了,再來提到那個備份的種類,
其實前面已經提到一些了!基本上,備份就可以直接分為『完全備份』與『部分備份』這兩方面:
完全備份就是將根目錄『 / 』裡頭所有的資料都給他一股腦兒的備份下來,不過,
這個時候所需要的『時間與備份裝置的容量』
就顯的相當的重要了!用在大型的企業是有一定的需求的,但是像我們這一種小網站的話,
完整的備份似乎太過於浪費的(畢竟我們可以用時間換取金錢....了不起又重新安裝了....)。
但是剛剛完成的系統(還沒有對外 Internet 上面服務)通常可以的話,就趕快給他備份一下吧! 這樣的一個備份是最乾淨的!用在系統的最乾淨還原是相當有幫助的!這是因為有的時候我們的系統被入侵了,但是 root 並不知道,這個時候老是拿最近的備份資料來還原也沒有用呀!因為連同被 cracker 修改過的檔案也被我們備份下來了呀!呵呵!所以囉, 將一個最原始的系統的資料備份下來還是有其必要性的!此外, 這種完整備份的頻率可不能太高,因為太耗系統資源了!
部分備份就如同上面提過的,備份那些最重要的資料就好了!反正系統不見的話,
只要重新安裝就回來了,資料只要妥善的備份重點資料,那麼系統的復原還是一個很快速的工作!
以鳥哥為例,我通常都喜歡僅備份最重要的資訊,因為重新安裝一次系統時間花的並不長
(一個鐘頭內一定可以搞定!)而帳號、服務設定、原本系統的資料庫、等等,幾乎都只要
copy 回來就 OK 了!
如同上面提到的,這兩個方式各有優缺點啦!那麼如果可能的話,是否兩個都來進行一下最好呢?呵呵!
答對了!給你拍拍手!我們通常的規劃就是這樣,重點部分的備份頻率較高,可能每天都需要備份的!
至於如果是完整備份的話,那麼一個星期、甚至一個月在備份一次都可以!目前鳥哥的系統上面就是每天備份
MySQL 資料庫,然後每個星期備份所有的重要資料!例如:我們這個網站在開始營運初期,雖然交通流量很大了,還是常出狀況, 那個時候重新安裝了好幾次(似乎是硬體的問題!),每次都是一個下午就搞定了!所以囉, 鳥哥是一直認為『重點備份』就真的是蠻重要的! 尤其很多時候,你的資料被吃掉都只是『某個網路服務』, 那麼如果僅進行完整備份的工作時,呵呵!單單是將系統先讀出來,再取出所要還原的部分, 呵呵!就可以累死你了.... 備份的工具選擇
好了,選定了備份的裝置與備份的頻率之後,那麼我要使用什麼方式來備份呀!呵呵!
這個也要跟備份的種類相互配合呢!通常鳥哥在備份的時候,除非有磁帶機或者有特殊的功用,否則通常我只使用
tar 啦!但是這裡我們介紹一下
cpio 這個東西!如果你有磁帶機的話,
cpio 可是相當好用的一個指令呢! ^_^ ,呵呵!
由於這兩個指令我們早在『壓縮工具』當中稍微提過了,
請再自行過去瞧一瞧去囉!另外,您或許會問道:『那麼我為什麼不直接給他
copy 過去備份的地點就好了呢!?』呵呵!既然可以在 copy
的過程裡面增加壓縮的功能來減低整個儲存空間的消耗,為何不壓縮?!那當然還是壓縮一下比較好囉!
所以啊!鳥哥還是比較喜歡 tar, cpio 的啦!
在完整備份的工具裡面,三個工具 tar,
cpio 與 dump 都很常被使用!此外,那個
dd 也是不錯的指令喔!
至於 cpio 的話,他最大的好處就是『 cpio 連一般的裝置檔都可以
copy 過來!』很棒吧!所以使用 cpio 進行完整備份是很棒的一個選擇。不過需要注意的是,由於
cpio 需要配合 find 才可以正常的動作!這裡請特別留意囉!另外,使用 cpio
常常配合另一顆完全用來備份的硬碟或者是磁帶機才好!至於完整的指令用法請到
『壓縮工具』 那一篇去查看囉!備份與反備份分別可以這樣使用:
至於部分備份方面,我們就以簡單的 tar 來說明一下吧!!假如我們需要備份的資料是每天的
MySQL 資料庫時,由於我想讓每天的資料都存成不同的檔案,而要分別檔案的新舊又以日期來分別最簡單了!
所以我就可以這樣做:
大致的工具就是這樣了!此外,由於備份是長長久久的事業,所以我們需要的是『系統可以自己動作』的方式, 您說是吧!所以呢,這個時候就需要使用到 cron 的服務啦!還記得我們先前講過的 例行性命令的建立 嗎?趕快再去複習一下呀! 鳥哥的備份策略
其實鳥哥在備份的策略相當的簡單,我並沒有想要將整個系統完全的備份下來,因為太耗時間了!
而且就我的立場而言,似乎也沒有這個必要,所以通常鳥哥只備份較為重要的檔案而已!不過,由於我需要備份
/home 與網頁資料,如果天天都備份,我想,系統遲早會受不了 (因為這兩個部分就已經快要佔去 1GB 的硬碟空間...)
,所以鳥哥就將我的備份分為兩大部分,一個是每週備份,一個則是每日備份,備份的時間點都選擇在凌晨的
3~4 點左右!這個時候我就寫了兩個簡單的 scripts ,分別來儲存我的資料。所以針對鳥哥的網站
(簡稱『鳥站』哈哈!)我的備份策略是這樣的:
日常備份行為:
底下提供鳥哥的備份的 scripts ,希望對大家有點幫助!
我的動作是:1) 先將所有的資料通通丟到 /disk2/backup 底下去,然後
2) 進行壓縮打包,並且傳送到內部的 192.168.1.100 那部主機上面去。
每日備份資料 scripts:
再來,繼續提供一下每日備份的資料:
遠端備援系統:
除此之外,那麼還有沒有保險的方式呢?呵呵!剛剛前面不是提過遠端備援嗎?
最簡單的說法就是『使用網際網路的方法,將你的資料送到遠端主機去備份!』那樣就
OK 啦!那麼我們怎麼使用遠端備份的方法呢?那就用最簡易的 FTP 吧!詳細的資料,
其實上面我們就已經提到的,您可以自行參考一下。這裡僅提供一個簡單的說明:
如何還原系統的考量
既然有備份,自然就得要考慮到還原囉∼一般來說,我們針對備份與還原的考量通常有這兩種:
那如果僅是一般個體戶呢?例如鳥哥的網站,就是這樣的代表。 那麼我當然不必要選擇完整備份了,因為即使我完整備份了,但是備份之初的資料如果就已經被入侵, 那我還原一個被入侵的資料有什麼好處?加上目前的硬體等級都很高, 網路頻寬都很夠的前提之下,重新安裝最新版 Linux 與更新到最新的套件,其實速度上是很快的。 如此一來,反正系統如果掛了,剛好整個 distribution 一起進行升級∼似乎也不錯啊∼ ^_^ 總之,備份工具是死的,使用的您是活的,您在使用 tar, cpio, dd 等工具時, 必須要優先考量您所想要達到的『目的』是什麼,再根據這個目的,以及您所可以利用的『資源與經費』, 選擇適當的備份方式與媒體,這樣就足夠啦!大家加油啦! ^_^
在這個章節當中,我們提到的大概都是屬於中小企業環境所使用到的備份動作,
如果您所在的公司是大型企業的環境,那麼不妨考慮外接式,或者是擁有完整備份儲存網絡的架構,
例如 SAN (Storage Area Network) 及 NAS (Network Attached Storage) 設備,
這樣才能夠更快速與高效率的儲存與備份啊!^_^
不過,這兩種架構當中,都需要比較高價位的光纖通道,或者是新技術的 iSCSI 協定的需求, 鳥哥還無緣碰到。除了 iSCSI 有接觸到一部機器之外, SAN 還真是沒有碰過..... 這兩部分的企業應用,就有待您自行與相關的廠商接觸瞭解囉! ^_^ 本章習題練習 ( 要看答案請將滑鼠移動到『答:』底下的空白處,按下左鍵圈選空白處即可察看 )
Floppy, Mo, Zip, CD-RW, DVD-RW, 外接式 USB 硬碟, Tape,
外接式儲存陣列 (RAID),額外的儲存架構,如 SAN, NAS 等。
2002/07/06:第一次完成 2003/02/12:重新編排與加入 FAQ 2005/10/25:舊版的資料已經移動到 此處 。 2005/10/25:主要是增加了一些簡單的說明,以及將一些不合時宜的資料拿掉而已! |
|||||||||||