From 網路文章 http://tw.knowledge.yahoo.com/question/question?qid=1508112100544
tar 是Unix 上的檔案與目錄備份指令, 與它類似的指令是 cpio.
tar 的全名叫做 tape archive, 就是要把資料備份到tape. 但是, 不一定要備份到 tape, 也可以備份到檔案, 也可以備份到另一台主機.
tar 指令有一些限制, 使用時要小心.
1. 沒辦法備份檔名超過 100個字的檔名
2. 沒辦法備份"special file", 例如 /dev 目錄下的東西
3. 沒辦法備份空目錄
4. 另外, 也要特別注意Unix 版本可否支援超過 2GB 的檔案.
5. 全路徑備份, 就全路徑取回, 相對路徑備份, 就相對路徑取回.
From 網路文章 http://coolyo.feyyo.idv.tw/serv/2007/03/20/usetar
tar [-cxtzjvfpPN] 檔案與目錄
參數:
-c :建立一個壓縮檔案的參數指令(create 的意思);
-x :解開一個壓縮檔案的參數指令!
-t :查看 tarfile 裡面的檔案!
特別注意,在參數的下達中, c/x/t 僅能存在一個!不可同時存在!
因為不可能同時壓縮與解壓縮。
-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-v :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!
-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加參數!
例如使用『 tar -zcvfP tfile sfile』就是錯誤的寫法,要寫成
『 tar -zcvPf tfile sfile』才對喔!
-p :使用原檔案的原來屬性(屬性不會依據使用者而變)
-P :可以使用絕對路徑來壓縮!
-N :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中!
--exclude FILE:在壓縮的過程中,不要將 FILE 打包!
( Robert : 我測試的環境裡 IBM AIX 中似乎無法使用 --exclude 的參數 )
壓縮:tar -zcvf 壓縮後的檔名 想要壓縮的檔案
解壓縮:tar -xvf想要解壓縮的檔案
From 網路文章 http://likunarmstrong.bokee.com/5452228.html
如何備份你的linux系統(轉)
本文作者:Heliode
翻譯人員:Jonah.Simon,
校對人員:lyreopera
「那我該用什麼來備份我的系統呢?」也許你會問。小事一樁,就像你備份或壓縮一個別的文件一樣,TAR。不像Windows,Linux不限制根用戶存取任何東西,因此,你完全可以把一個分區上每一個的文件放入一個TAR文件中。
來實施這一方法,用這個成為根用戶:
sudo su
接著去你的文件系統的根目錄(在我們的例子中,我們使用它,不過你可以去你希望備份的任何地方,包括遠程或可移動驅動器。)
cd /
然後,下面就是我用來備份我的系統的完整的命令:
tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found
--exclude=/backup.tgz --exclude=/mnt --exclude=/sys
接著,讓我們稍微解釋一下:
- 很明顯,'tar'部分就是我們將要使用的軟件。
- 'cvpfz'是我們給tar加的選項,像「創建一個壓縮文檔」(這是顯然的),「保存權限」(以便使每一個相同的文件有相同的權限),以及「gzip」(縮減大小)。
- 接下來,是壓縮文檔將獲得的名稱,在我們的例子中是backup.tgz。
- 緊隨其後的是我們想要備份的根目錄。既然我們想備份所有東西:/
- 接 著就是我們要剔除的目錄了。我們不想備份每一樣東西,因為包括有些目錄不是非常有用。同時確保你沒有把備份文件本身也加進去了,否則,你會得到怪異的結果 的。
- 你也許同樣不打算把/mnt文件夾包括進來——如果你在那兒掛載了其他分區——否則最終你會把那些也備份的。同時確保你沒有任何東西掛載在 /media(即沒有掛載任何cd或可移動介質)。
- 否則,剔除/media。
如果你想排除所有的其他分區,你可以使用 'l' 參數代替 --exclude, 上面的命令看起來像這樣:
tar cvpzlf backup.tgz / --exclude=/lost+found --exclude=/backup.tgz
按1:kvidell在論壇主題裡建議也剔除/dev目錄。不過,我有其他證據表明這樣做是不明智的。
好了,如果命令適合你的話,敲擊確定鍵(或者回車鍵,管它叫什麼名字),然後什麼都不用干,放鬆一下。備份也許會花上一段時間。
完了以後,在你的文件系統的根目錄會有一個叫作backup.tgz的文件——很可能相當巨大。現在你可以把燒錄到DVD上,或者移動到另一台機器,你可以做任何你想做的事情。
按2:在進程的最後,你也許會得到一條信息,寫著「tar:由於先前錯誤的耽擱而存在錯誤」或者其他什麼,不過大多數情況下你可以僅僅忽略它。
作為選擇,你可以使用Bzip來壓縮你的備份。這意味著較高的壓縮比但是也意味著較低的速度。如果壓縮比對你很重要,只需用「j」替換命令中的「z」, 同時給備份命一個相應的擴展名。這些會使命令變成這樣:
tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found
--exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys
2.1. 通過網絡備份
如果空白的文件系統太少了並且你又不能掛載其它的文件系統來保存備份文件,你有可能使用 netcat 來完成備份.
在接受端你必須設置 netcat 用於寫備份文件,像這樣:
nc -l -p 1024 > backup.tar.bz2
然後你傳送 tar 命令,不帶 'f' 參數通過 netcat 在發送端,像這樣:
tar cvpj / <all those other options> | nc -q 0 <receiving host> 1024
在上面的命令中 1024 僅僅是一個隨機的端口號, 任何從 1024 或以上的都可以工作.
如果安全的通過網絡備份不依賴文件系統完成備份. 事實上一個真正快的網絡比寫備份文件到磁盤要快.
在上面的講述中 (由於我剛剛發呆,因此我不能證實它是可靠的) 是這個命令:
tar cvpj / <all those other options> | ssh <remote host> "cat > backup.tar.bz2"
3. 恢復
警告:看在上帝的份上,在這一部分請小心謹慎。如果你不理解你在這裡幹了什麼,你可能最終毀壞了對你而言很重要的東西,所以請小心謹慎。 那麼,我們將緊接著上一章的例子:在分區的根目錄下的backup.tgz文件
再一次確保你是根用戶以及備份文件在文件系統的根目錄。
Linux 美妙的地方之一就是這一項工作甚至可以在一個正在運行的系統上進行;沒必要被引導cd或者任何東西搞得暈頭轉向。當然,如果你使你的系統無法被引導了。你 也許別無選擇,只能使用一張live-cd了,但是結果是一樣的。你甚至可以在Linux系統正在運行的時候,移除它裡面所有文件。可是我不告訴你那個命 令!
好了,言歸正傳。這是我要用的命令:
tar xvpfz backup.tgz -C /
如果你使用 bz2
tar xvpfj backup.tar.bz2 -C /
警告:這會把你分區裡所有文件替換成壓縮文檔裡的文件!
只要敲一下確定/回車/你的兄弟/隨便什麼,然後去看焰火吧。同樣,這會花一段時間。等它完成了,你就有了一個完全恢復的Ubuntu系統!只需確保在你做其他任何事情之前,重新創建你剔除的目錄:
mkdir proc mkdir lost+found mkdir mnt mkdir sys etc...
當你重啟以後,所以的事情都會和你備份的時候一模一樣。
3.1. 恢復 GRUB
那麼,如果你想把你的系統移動到一塊新硬盤上,或者,你想對你的GRUB做一些糟糕的事情(比方說,安裝Windows),你也將需要重裝GRUB。在這個論壇裡,有不少如何做這個的非常好的指導,所以我不會從頭重新做起。相反,看一下這裡(論壇) 或者這兒: RecoveringUbuntuAfterInstallingWindows
在這個論壇主題中,提出了一些方法。我個人建議第二個,remmelt貼出來的,因為我發現它每次都管用。
對,就是那個!我希望它有幫助!
4. 其他方法
也許你也想看一下這些能幫助你自動備份系統的程序
- Partimage
- Mondo Rescue
留言列表