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