使用tar或者afio對linux系統進行備份

2021-04-13 13:40:50 字數 3238 閱讀 6729

tar需要帶乙個引數命令,通常c表示建立(create),x表示解壓所(extract),t表示測試(test)。選項p指示tar在解壓縮時保留原始檔案的所有權和許可權。選項v指示tar列出詳細操作過程。f選項以及後面的引數指定tar寫到給定的裝置。所有path1,path2等等引數是要新增到存檔中的目錄樹或者檔案。

例如,要將/usr目錄樹寫到$home/backup/usrbak.tar中,可以使用如下命令:

tar -cf $home/backup/usrbak.tar /usr

如果想要將/usr目錄樹寫到/dev/st0的磁帶裝置中,可以使用如下命令:

tar -cf /dev/st0 /usr

現在聰明的網友應該已經想到了,想要備份整個linux檔案系統的命令是這樣:

tar -cf /dev/st0 /

乍看起來的確是這樣的,但是,這個命令卻實現不了你的意圖。首先,這個命令也會備份/proc目錄。根據你的核心版本,它將在你的備份中增加數百兆你不需要的核心執行期資料,甚至會引起tar中斷或者分段錯誤(segmentation fault)。

其次,備份根目錄/也會備份/mnt目錄,其中會包含裝載的cd-rom資料以及任何裝載的網路檔案系統甚至於裝載的windows分割槽(這是好事,也可能是壞事,取決於你要做什麼)。

要備份除了/proc和/mnt之外的根目錄,使用下面的命令:

tar -cf /dev/st0 $(ls / | grep -v -e proc -e mnt)

這個命令將備份除了/proc和/mnt之外的根目錄。

1.2恢復

建立了乙個tar存檔檔案之後,通常要將每個檔名前面的斜線「/」刪除掉。這意味著當恢復檔案時,它們將被恢復到tar執行的相對工作目錄中去。例如,要將/dev/st0中的磁帶恢復到它們的原始路徑中,使用下列命令:

cd /: tar -xpf /dev/st0

在恢復過程中可以指定附加的路徑。這些路徑表示列表中的檔案被打包後恢復的路徑。允許使用萬用字元。例如要將/dev/st0磁帶中的/usr/x11r6和/usr/local目錄樹恢復到它們的原始路徑,命令如下:

cd /;tar -xpf /dev/st0 'usr/x11r6/*/' 'usr/local/*'

還可以用tee命令將處理的的檔案列表在終端顯示,並同時將檔案列表寫到乙個檔案中,命令如下:

cd /;tar -xpf /dev/st0 'usr/x11r6/*/' 'usr/local/*' | tee /var/log/restored.files

有關使用tar進行更加複雜操作的資訊,例如多卷,增量備份和恢復等,可以參看tar的manual

注意:

1、在這裡一直沒有提及tar的z,j選項。tar -cz(j)確實能夠建立壓縮tar的歸檔檔案,不過這兩個壓縮都是基於資料流的。也就是說如果資料儲存在磁帶上,而磁帶發生錯誤的機率是很高的,如果遇到乙個無法恢復的位錯誤,你將不僅失去這個檔案,整個磁帶也就毀了。

所以,最好只在錯誤率低的介質,如硬碟上使用z,j選項。這個問題與基於硬體壓縮的磁帶裝置無關,對於這種裝置是無須使用軟體壓縮的。當然對於大部分網友來說都可以加上z,j選項,畢竟大部分人都沒有私人的磁帶機。

2、文中的示範命令列都是以/dev/st0為備份裝置的,如果是要備份到檔案,只要將該引數改為檔案的路徑即可,如$home/backup/sysbak.tar

[size=18]2、使用afio進行簡單的備份和恢復[/size]

afio命令與tar命令類似,而且afio的存檔能夠與支援cpio(詳細資訊可以man cpio)命令的系統共同操作,afio支援對單個檔案的壓縮,更適合於利用沒有硬體壓縮功能的磁帶進行壓縮備份。

可能你的發行版本沒有afio軟體包,你可以從http://scdbackup.webframe.org/afio-2.4.6.tgz獲取afio的源**。

因為afio將檔案列表存檔為標準輸入流,所以afio的作為存檔工具的基本語法包含兩個命令:

find path1 path2 ...[-opts] || afio -[i|o|t] [-vz]device

-i命令用來恢復(input from)磁帶或者存檔,-o命令(output to)用來寫入磁帶或者存檔,-t命令用來測試磁帶或者存檔。-v選項對處理檔案進行列表,-z選項在檔案寫入磁帶之前用gzip進行壓縮。

2.1備份

通常使用find命令來提供afio要處理的檔案列表,可以利用find的特殊功能和afio構造乙個更專業更靈活的檔案存檔計畫。

最簡單的方式,例如要將/usr目錄樹寫到磁帶裝置/dev/st0中,使用下列命令:

find /usr | afio -o /dev/st0

要進行同樣的存檔操作,但是將每個檔案在寫到磁帶之前進行壓縮,使用下列命令:

find /usr | afio -o -z /dev/st0

2.2恢復

要將存檔恢復到根目錄,可使用-i命令代替-o命令:

cd /;afio -i /dev/st0

要恢復壓縮的文件,需記住要包含-z選項:

cd /;afio -i -z /dev/st0

afio的詳細操作與tar命令的詳細操作相同。例如,要在恢復存檔的同時在終端上顯示處理的檔案列表,並將列表儲存到/var/log目錄的乙個檔案中,命令如下:

afio -i -z -v /dev/st0 | tee /var/log/restored.files

有關使用afio進行更加複雜操作的資訊。可以參見afio的手冊。

[size=18]備註:[/size]

tar和afio用於備份linux已經可以工作得很好,但是可能有些使用者還是不習慣使用命令列工具,或者某些使用者需要更複雜的,網路功能更強的工具,這是tar或者afio所不能提供的。

實際上也有不少商用的linux備份方案。比如:

二者都提供了gui介面,而且有很好的網路功能以及一些特性,具體可以參看官網的介紹。當然還有很多的備份軟體,不過這兩者是比較著名的linux備份方案。

但是它們兩都是商業軟體,要想要使用就得掏錢買,否則只能使用它們的試用版了。

使用tar或者afio對linux系統進行備份

摘自 參考 linux的系統備份一直是從windows轉到linux的使用者關心的問題。由於眾所周知的原因,有經驗的windows使用者都養成了用ghost等軟 件備份windows系統的 優良傳統 結果這個優良傳統也被移植到了linux下。其實ghost用來備份linux也是很不錯的,它的壓縮功能...

使用SQL語句對Access資料庫進行備份

說明 1.要備份的資料庫 medicine.mdb 有下列幾個表單 enter表 exit表 store表 2.備份的資料庫 bumedicine.mdb 放在當前路經的dbbackup子目錄中。3.使用sql中的select.into.in語句,對medicine.mdb進行追加查詢,生 成與me...

linux中,如何使用tar進行解壓縮

linux中,如何使用tar進行解壓縮 環境 windows 7 virtualboax fedora 15 kde 可以使用tar命令解壓縮.tar.gz檔案,下面以解壓縮qt原始檔舉例 1.在windows中將qt原始檔拷貝到共享資料夾下 2.在fedora 15中,進入到共享檔案下,共享檔案會...