電腦店訊:備份是一項重要的工作,但是很多人沒有去做。一旦由於使用不當造成數據丟失,備份就成了真正的救命者。本文將討論設置備份的策略和如何選擇備份介質,並介紹用於備份的tar和cpio工具。
設置備份策略
設置備份策略和計劃可以增加進行備份的可能性。備份開始前,要確定備份哪些數據、備份的頻率和使用什麼樣的介質進行備份。備份的時候,應該進行完全備份。
備份通常安排在空閒時間進行。在大多數系統中,由於此時用戶數量最少,所以打開的文件也最少。由於備份要占用一些系統資源,運行備份時用戶會發現系統反應遲鈍。
如果Linux計算機只有一個使用者,可以一個星期或一個月對整個系統備份一次。如果有關鍵性的文件,就應該有計劃地把這些文件拷貝到一個可移動的磁盤中。
備份之前,首先要確保正確地設置備份設備。大多數磁帶備份系統在安裝時可以發現是否正確。系統啟動後,打開一個終端窗口並且輸入下面的命令:
$dmeg | less
滾動列表,並從中尋找你的磁帶系統的驅動。如果沒有發現,就需要加載一個組件驅動程序。
如果運行Linux服務器,就要制定一個備份計劃,但這並不意味著每天要對所有的東西都備份。系統中只有一部分東西需要每天備份,下面列出需要備份的項目:
用戶文件 每天都要對/home目錄中的用戶文件進行備份。
配置文件 /etc和/var目錄中的配置文件不需要頻繁備份,每個星期或每月備份一次即可,主要取決於配置更改的頻繁程度。
程序文件 /usr和/opt目錄中的程序文件很少發生變化,安裝後做一次備份即可。通常情況下,程序文件可方便地從原始安裝盤中恢復。
選擇備份介質
把備份存到哪裡有多種選擇。下面介紹一些可選擇的備份介質:
軟盤 如果要把重要文件快速備份,或者將其帶到家中,這時軟盤仍舊是一種可選的備份介質。
光盤寫入器 隨著光盤寫入器變得越來越可靠,價格也越來越低,光盤本身也非常便宜。選用此項的一個好處是光盤不容易被損壞,它備份的可靠性很高。
使用光盤寫入器有兩點不利因素:它們速度較慢,並且只能保存大約650MB。
可重寫的光盤 可重寫光盤驅動器比光盤寫入器要貴得多,工作方式與其類似。但是,這些光盤是可被重寫的,並且它比只能寫一次的光盤貴許多。可重寫光盤其它的特性都與光盤寫入器類似。
Jaz和Zip Zip驅動器很流行,已經成為許多PC機的標准配置,同時它的磁盤和驅動器也都不貴。它一張磁盤可容納100MB的數據,是一種用於快速、可移動備份的很好選擇。
Jaz磁盤可以容納上G字節的數據,並且使用更先進的技術以獲得更好的表現。Jaz驅動器和Jaz磁盤都比較貴。
Jaz和Zip的缺陷是都容易損壞,並且保持時間相對要短。
磁帶機 磁帶備份設備是大多數Linux服務器的標准配置。磁帶是可靠的,並且很少出現錯誤,它幾乎比其它介質存儲時間都要長。
對於點對點工作組網絡和中型網絡,Travan和高端數字音頻磁帶(DAT)通常是最好的選擇。Travan驅動器經過壓縮可以處理8GB數據,這對於具有5-10個PC機的小型網絡來說足夠了。DAT驅動器有更好的表現,可以處理24GB的數據。DAT驅動器比Travan驅動器昂貴,但它磁帶的價格要比Travan QIC磁帶卷便宜。
高端磁帶 選擇高端磁帶可能是相當貴的。與Travan或DAT相比,這種驅動器有更大的容量和更高的速度。三種廣泛使用的驅動器類型是:Sony Advanced Intelliget Tape ( AIT ) 、Quantum Digital Linear Ta p e ( DLT )和Exabyte Mammoth 8mm。它們最少可以容納20GB的不壓縮數據,並且具有更高的數據傳輸能力。
用於備份的tar
tar工具是以前備份文件的可靠方法,幾乎可以工作於任何環境中,Linux老用戶一般都信賴它。
Linux中以.tar結尾的文件都是用tar創建的。它的使用超出了單純的備份,可用來把許多不同文件放到一起組成一個易於分開的文件。tar是從Tape ARchiver備份工具起步的。
包含在Linux中的GNU tar工具簡便易用,包含了一個用來壓縮的選項,且支持不斷增加的備份。
tar是一個命令行的工具,沒有圖形界面。使用Konsole或Kvt打開一個終端窗口,接下來是一個簡單的備份命令:
$tar cvf - /home > /temp/backup.tar
這個命令在/tmp目錄中創建一個backup.tar的文件,/home目錄中所有內容都包含在其中。
接下來可以把tar文件拷貝到備份磁盤中。使用簡單備份時,如果要使用壓縮功能,改為下面命令:
$tar czvf - /home > /tmp/backup.tgz
上面擴展名. tgz指出這是一個壓縮文件。
下一個例子可以用來直接備份到一個安裝好的Jaz驅動器中,但這樣做要確定有足夠的空間:
$tar czvf /mnt/jaz/backup.tgz - /home
對於一個磁帶驅動器,使用設備名稱:
$tar czvf /dev/st0/backup.tgz - /home
如果有一個備份非常大,可以使用多卷選項。但是,這樣做就不能使用壓縮。當第一個磁盤或磁帶填滿後,tar將提示插入另一張:
$tar cvMf /dev/st0/5mar2000.tar -home
要恢復備份使用下面的命令,以Jaz磁盤為例:
$tar xzvf /mnt/jaz/5mar2000.tgz /home
表1列出了tar主要功能參數。此外還有很多可選參數,本文不再詳述。
表1 tar主要功能參數
參數 描述
-A,--catenate,--concatenate 附加到另一個tar存檔的後面
-C,--create 創建一個新的tar存檔
-d --diff,--compare 找出tar存檔和文件間的差別,用於一個文檔的驗證
--delete 從存檔刪除文件,磁盤備份不能選用
-r,--append 把文件附加到tar存檔的後面
-t,--list 列出tar存檔的內容
-u,--update 只把比tar文檔中的文件新的文件附加到存檔中
-x,--extract,--get 解開一個tar存檔
tar備份可以用crontab工具設置成基於時間的有規律地運行。例如,每晚2點把/home目錄備份到SCSI磁帶驅動器中,只要將下面語句添加到root的crontab中即可:
00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
用於備份的cpio
GNU cpio工具像tar一樣從命令提示行啟動程序。與tar相比cpio更復雜,但是也更為可靠。因為如果一個tar文件中某處有一個壞塊,就不能對備份文件的其它部分進行訪問,而使用cpio,只有壞塊不能被訪問。
cpio創建一個稱為copy-out mode的備份,備份存檔中包含了文件和所有者、時間及訪問許可等信息。cpio需要一個假定要備份的文件列表。創建列表的一個最方便的方法就是使用ls命令。例如,要把/home目錄備份到SCSI磁帶設備中,輸入下面的命令:
$ls /home | cpio -o > /dev/st0
也可以使用find命令。它包括許多選項可以用來消減被存檔文件的數量。例如,下面的命令對所有在上一個2 4小時內修改過的文件進行存檔:
$find /home -mtime 1 -type f -print | cpio -o > /dev/st0
copy - in模式把文件從備份存檔中解出來。下面的命令會恢復前兩個備份例子中的所有文件:
$cpio -i < /dev/st0
你也可以對cpio的備份進行計劃,用crontab工具設置成基於任何時間的有規律地運行。例如,要在每晚2點把/ home目錄備份到SCSI磁帶驅動器中,把下面的語句添加到root的crontab文件中即可:
00 02 * * * ls /home | cpio -o > /dev/st0