linux文件系統(tǒng)備份
linux文件系統(tǒng)備份
系統(tǒng)備份是系統(tǒng)管理工作中十分重要的一個環(huán)切,備份是一項重要的工作,但是很多人沒有去做。那么如何備份linux系統(tǒng)呢?下面跟著學習啦小編一起來了解一下吧。
如何備份linux系統(tǒng)
如果Linux計算機只有一個使用者,可以一個星期或一個月對整個系統(tǒng)備份一次。如果有關鍵性的文件,就應該有計劃地把這些文件拷貝到一個可移動的磁盤中。
備份之前,首先要確保正確地設置備份設備。大多數磁帶備份系統(tǒng)在安裝時可以發(fā)現(xiàn)是否正確。系統(tǒng)啟動后,打開一個終端窗口并且輸入下面的命令:
$dmeg | less
滾動列表,并從中尋找你的磁帶系統(tǒng)的驅動。如果沒有發(fā)現(xiàn),就需要加載一個組件驅動程序。
如果運行Linux服務器,就要制定一個備份計劃,但這并不意味著每天要對所有的東西都備份。系統(tǒng)中只有一部分東西需要每天備份,下面先介紹下目錄結構及備份策略:
目錄結構:
/etc
包含所有核心配置文件。這其中包括網絡配置、系統(tǒng)名稱、防火墻規(guī)則、用戶、組,以及其他全局系統(tǒng)項。
/var
包含系統(tǒng)守護進程(服務)所使用的信息,包括 DNS 配置、DHCP 租期、郵件緩沖文件、HTTP 服務器文件、db2 實例配置,等等。
/home
包含所有用戶的默認用戶主目錄。這包括他們的個人設置、已下載的文件和用戶不希望失去的其他信息。
/root
是根(root)用戶的主目錄。
/opt
是安裝許多非系統(tǒng)文件的地方。IBM 軟件就安裝在這里。OpenOffice、JDK 和其他軟件在默認情況下也安裝在這里。
有些目錄是應該考慮不 備份的。
1. /proc
應該永遠不要備份這個目錄。它不是一個真實的文件系統(tǒng),而是運行內核和環(huán)境的虛擬化視圖。它包括諸如 /proc/kcore 這樣的文件,這個文件是整個運行內存的虛擬視圖。備份這些文件只是在浪費資源。
2. /dev
包含硬件設備的文件表示。如果計劃還原到一個空白的系統(tǒng),那就可以備份 /dev。然而,如果計劃還原到一個已安裝的 Linux 系統(tǒng),那么備份 /dev 是沒有必要的。
備份策略:
用戶文件:每天都要對/home目錄中的用戶文件進行備份。
配置文件:/etc和/var目錄中的配置文件不需要頻繁備份,每個星期或每月備份一次即可,主要取決于配置更改的頻繁程度。
程序文件:/usr和/opt目錄中的程序文件很少發(fā)生變化,安裝后做一次備份即可。通常情況下,程序文件可方便地從原始安裝盤中恢復。
選擇備份介質
把備份存到哪里有多種選擇。下面介紹一些可選擇的備份介質:
軟盤:如果要把重要文件快速備份,或者將其帶到家中,這時軟盤仍舊是一種可選的備份介質。
光盤寫入器:隨著光盤寫入器變得越來越可靠,價格也越來越低,光盤本身也非常便宜。選用此項的一個好處是光盤不容易被損壞,它備份的可靠性很高。使用光盤寫入器有兩點不利因素:它們速度較慢,并且只能保存大約650MB。
可重寫的光盤:可重寫光盤驅動器比光盤寫入器要貴得多,工作方式與其類似。但是,這些光盤是可被重寫的,并且它比只能寫一次的光盤貴許多??芍貙懝獗P其它的特性都與光盤寫入器類似。
Jaz 和Zip:Zip驅動器很流行,已經成為許多PC機的標準配置,同時它的磁盤和驅動器也都不貴。它一張磁盤可容納100MB的數據,是一種用于快速、可移動備份的很好選擇。Jaz磁盤可以容納上G字節(jié)的數據,并且使用更先進的技術以獲得更好的表現(xiàn)。Jaz驅動器和Jaz磁盤都比較貴。Jaz和Zip的缺陷是都容易損壞,并且保持時間相對要短。
磁帶機:磁帶備份設備是大多數Linux服務器的標準配置。磁帶是可靠的,并且很少出現(xiàn)錯誤,它幾乎比其它介質存儲時間都要長。對于點對點工作組網絡和中型網絡,Travan和高端數字音頻磁帶(DAT)通常是最好的選擇。Travan驅動器經過壓縮可以處理8GB數據,這對于具有5-10個PC機的小型網絡來說足夠了。DAT驅動器有更好的表現(xiàn),可以處理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是以前備份文件的可靠方法,幾乎可以工作于任何環(huán)境中,Linux老用戶一般都信賴它。 Linux中以。tar結尾的文件都是用tar創(chuàng)建的。它的使用超出了單純的備份,可用來把許多不同文件放到一起組成一個易于分開的文件。tar是從 Tape ARchiver備份工具起步的。包含在Linux中的GNU tar工具簡便易用,包含了一個用來壓縮的選項,且支持不斷增加的備份。tar是一個命令行的工具,沒有圖形界面。使用Konsole或Kvt打開一個終端窗口,接下來是一個簡單的備份命令:
$tar cvf - /home > /temp/backup.tar
這個命令在/tmp目錄中創(chuàng)建一個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可以用crontab工具設置成基于時間的有規(guī)律地運行。例如,每晚2點把/home目錄備份到SCSI磁帶驅動器中,只要將下面語句添加到root的crontab中即可:
00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
要使用 tar 來把除 /proc 目錄之外的整個文件系統(tǒng)備份到 SCSI 磁帶設備:
$tar -cpf /dev/st0 / --exclude=/proc
在上面的例子中,-c 開關表示歸檔文件正在被創(chuàng)建。-p 開關表示我們希望保留文件許可權限,這對良好的備份來說是很關鍵的。-f 開關指向該歸檔文件的文件名。在本例中,我們使用的是原始磁帶設備 /dev/st0。/ 表示我們想要備份的內容。既然我們想要備份整個系統(tǒng),因此把這個開關指定為根(root)。當把 tar 指向一個目錄(以 / 結尾)時,它會自動遞歸。最后,我們排除了 /proc 目錄,因為它沒有包含需要保存的任何內容。如果單盒磁帶容納不下這個備份,我們需要添加 -M 開關(本例中沒有顯示)以進行多卷備份。
要還原一個或多個文件,可以使用帶提取開關(-x)的 tar 命令:
$tar -xpf /dev/st0 -C /
-C / 表明我們想要讓還原從 / 開始。-C 開關使我們的當前目錄不再相關。
您可能會經常使用的另外兩個 tar 命令是 -t 和 -d 開關。-t 開關列出某個歸檔文件的內容。-d 開關將歸檔文件的內容與系統(tǒng)上的當前文件作比較。
為便于操作和編輯,您可以將想要歸檔的文件和目錄放進一個文本文件中,然后在命令行通過 -T 開關引用這個文本文件。這些文件和目錄可以與命令行上列出的其他目錄結合起來。下面的命令行備份 MyFiles 中列出的所有文件和目錄、/ 根目錄和 /tmp 目錄中的所有 iso 文件。
$tar -cpf /dev/st0 -T MyFiles /root /tmp/*.iso
文件列表只是一個文本文件,其中列出文件或目錄。下面是一個例子:
/etc
/var
/home
/usr/local
/opt
請注意 tar -T(或 files-from)命令不能接受通配符。文件必須明確地列出。上面的例子展示了一種單獨地引用文件的方法。您還可以執(zhí)行腳本來搜索系統(tǒng),然后建立一個列表。下面就是這樣一個腳本的例子:
#!/bin/sh
cat MyFiles > TempList
find /usr/share -iname *.png 》 TempList
find /tmp -iname *.iso 》 TempList
tar -cpzMf /dev/st0 -T TempList
上面的腳本首先將 MyFiles 中的所有現(xiàn)有文件列表復制到 TempList。然后它執(zhí)行兩個 find 命令來搜索文件系統(tǒng)中匹配某個模式的文件,并將它們附加到 TempList。第一次是搜索 /usr/share 目錄樹中以 .png 結尾的所有文件。第二次是搜索 /tmp 目錄樹中以 .iso 結尾的所有文件。在建立好列表之后,tar 然后在文件設備 /dev/st0 (第一個 SCSI 磁帶設備)上創(chuàng)建 一個新的歸檔文件,該文件使用 gzip 格式來壓縮,并保留所有文件權限。該歸檔文件將跨越多個卷。要歸檔的文件的名稱將從 TempList 文件中提取。
用于備份的Cpio
GNU cpio工具像tar一樣從命令提示行啟動程序。與tar相比cpio更復雜,但是也更為可靠。因為如果一個tar文件中某處有一個壞塊,就不能對備份文件的其它部分進行訪問,而使用cpio,只有壞塊不能被訪問。cpio創(chuàng)建一個稱為copy-out mode的備份,備份存檔中包含了文件和所有者、時間及訪問許可等信息。cpio需要一個假定要備份的文件列表。創(chuàng)建列表的一個最方便的方法就是使用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
看過“linux 文件系統(tǒng)備份 ”的人還看了: