Linux系統(tǒng)如何備份
Linux系統(tǒng)如何備份
在使用Ubuntu之前,相信很多人都有過(guò)使用Windows系統(tǒng)的經(jīng)歷。如果你備份過(guò)Windows系統(tǒng),那么你一定記憶猶新,那么你知道Linux系統(tǒng)應(yīng)該怎么備份嗎?小編為大家分享了備份Linux系統(tǒng)的解決方法,下面大家跟著學(xué)習(xí)啦小編一起來(lái)了解一下吧。
Linux系統(tǒng)備份方法
不像Windows,Linux不限制根用戶(hù)存取任何東西,因此,你完全可以把一個(gè)分區(qū)上每一個(gè)的文件放入一個(gè)TAR文件中。來(lái)實(shí)施這一方法,用這個(gè)成為根用戶(hù):
sudo su
接著去你的文件系統(tǒng)的根目錄(在我們的例子中,我們使用它,不過(guò)你可以去你希望備份的任何地方,包括遠(yuǎn)程或可移動(dòng)驅(qū)動(dòng)器。)
cd /
然后,下面就是我用來(lái)備份我的系統(tǒng)的完整的命令:
tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys
接著,讓我們稍微解釋一下:
很明顯,'tar'部分就是我們將要使用的軟件。
'cvpfz'是我們給tar加的選項(xiàng),像“創(chuàng)建一個(gè)壓縮文檔”(這是顯然的),“保存權(quán)限”(以便使每一個(gè)相同的文件有相同的權(quán)限),以及“gzip”(縮減大小)。
接下來(lái),是壓縮文檔將獲得的名稱(chēng),在我們的例子中是backup.tgz。
緊隨其后的是我們想要備份的根目錄。既然我們想備份所有東西:/
接著就是我們要剔除的目錄了。我們不想備份每一樣?xùn)|西,因?yàn)榘ㄓ行┠夸洸皇欠浅S杏?。同時(shí)確保你沒(méi)有把備份文件本身也加進(jìn)去了,否則,你會(huì)得到怪異的結(jié)果的。你也許同樣不打算把/mnt文件夾包括進(jìn)來(lái)——如果你在那兒掛載了其他分區(qū)——否則最終你會(huì)把那些也備份的。同時(shí)確保你沒(méi)有任何東西掛載在 /media(即沒(méi)有掛載任何cd或可移動(dòng)介質(zhì))。否則,剔除/media。
如果你想排除所有的其他分區(qū),你可以使用 'l' 參數(shù)代替 --exclude, 上面的命令看起來(lái)象這樣:
tar cvpzlf backup.tgz / --exclude=/lost+found --exclude=/backup.tgz
按:kvidell在論壇主題里建議也剔除/dev目錄。不過(guò),我有其他證據(jù)表明這樣做是不明智的。
好了,如果命令適合你的話(huà),敲擊確定鍵(或者回車(chē)鍵,管它叫什么名字),然后什么都不用干,放松一下。備份也許會(huì)花上一段時(shí)間。
完了以后,在你的文件系統(tǒng)的根目錄會(huì)有一個(gè)叫作backup.tgz的文件——很可能相當(dāng)巨大?,F(xiàn)在你可以把燒錄到DVD上,或者移動(dòng)到另一臺(tái)機(jī)器,你可以做任何你想做的事情。
按2:在進(jìn)程的最后,你也許會(huì)得到一條信息,寫(xiě)著“tar:由于先前錯(cuò)誤的耽擱而存在錯(cuò)誤”或者其他什么,不過(guò)大多數(shù)情況下你可以?xún)H僅忽略它。
作為選擇,你可以使用Bzip來(lái)壓縮你的備份。這意味著較高的壓縮比但是也意味著較低的速度。如果壓縮比對(duì)你很重要,只需用“j”替換命令中的“z”, 同時(shí)給備份命一個(gè)相應(yīng)的擴(kuò)展名。這些會(huì)使命令變成這樣:
tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys
2.1. 通過(guò)網(wǎng)絡(luò)備份如果空白的文件系統(tǒng)太少了并且你又不能掛載其它的文件系統(tǒng)來(lái)保存?zhèn)浞菸募?,你有可能使?netcat 來(lái)完成備份.
在接受端你必須設(shè)置 netcat 用于寫(xiě)備份文件,象這樣:
nc -l -p 1024 > backup.tar.bz2
然后你傳送 tar 命令,不帶 'f' 參數(shù)通過(guò) netcat 在發(fā)送端,象這樣:
tar cvpj / | nc -q 0 1024
在上面的命令中 1024 僅僅是一個(gè)隨機(jī)的端口號(hào), 任何從 1024 或以上的都可以工作.
如果安全的通過(guò)網(wǎng)絡(luò)備份不依賴(lài)文件系統(tǒng)完成備份. 事實(shí)上一個(gè)真正快的網(wǎng)絡(luò)比寫(xiě)備份文件到磁盤(pán)要快.
在上面的講述中 (由于我剛剛發(fā)呆,因此我不能證實(shí)它是可靠的) 是這個(gè)命令:
tar cvpj / | ssh "cat > backup.tar.bz2"
3. 恢復(fù)警告:看在上帝的份上,在這一部分請(qǐng)小心謹(jǐn)慎。如果你不理解你在這里干了什么,你可能最終毀壞了對(duì)你而言很重要的東西,所以請(qǐng)小心謹(jǐn)慎。 那么,我們將緊接著上一章的例子:在分區(qū)的根目錄下的backup.tgz文件
再一次確保你是根用戶(hù)以及備份文件在文件系統(tǒng)的根目錄。
Linux美妙的地方之一就是這一項(xiàng)工作甚至可以在一個(gè)正在運(yùn)行的系統(tǒng)上進(jìn)行;沒(méi)必要被引導(dǎo)cd或者任何東西搞得暈頭轉(zhuǎn)向。當(dāng)然,如果你使你的系統(tǒng)無(wú)法被引導(dǎo)了。你也許別無(wú)選擇,只能使用一張live-cd了,但是結(jié)果是一樣的。你甚至可以在Linux系統(tǒng)正在運(yùn)行的時(shí)候,移除它里面所有文件??墒俏也桓嬖V你那個(gè)命令!
好了,言歸正傳。這是我要用的命令:
tar xvpfz backup.tgz -C /
如果你使用 bz2
tar xvpfj backup.tar.bz2 -C /
警告:這會(huì)把你分區(qū)里所有文件替換成壓縮文檔里的文件!
只要敲一下確定/回車(chē)/你的兄弟/隨便什么,然后去看焰火吧。同樣,這會(huì)花一段時(shí)間。等它完成了,你就有了一個(gè)完全恢復(fù)的Ubuntu系統(tǒng)!只需確保在你做其他任何事情之前,重新創(chuàng)建你剔除的目錄:
mkdir proc mkdir lost+found mkdir mnt mkdir sys etc...
當(dāng)你重啟以后,所以的事情都會(huì)和你備份的時(shí)候一模一樣。
3.1. 恢復(fù) GRUB那么,如果你想把你的系統(tǒng)移動(dòng)到一塊新硬盤(pán)上,或者,你想對(duì)你的GRUB做一些糟糕的事情(比方說(shuō),安裝Windows),你也將需要重裝GRUB。在這個(gè)論壇里,有不少如何做這個(gè)的非常好的指導(dǎo),所以我不會(huì)從頭重新做起。相反,看一下這里(論壇) 或者這兒:RecoveringUbuntuAfterInstallingWindows
在這個(gè)論壇主題中,提出了一些方法。我個(gè)人建議第二個(gè),remmelt貼出來(lái)的,因?yàn)槲野l(fā)現(xiàn)它每次都管用。
對(duì),就是那個(gè)!我希望它有幫助!
4. 其他方法也許你也想看一下這些能幫助你自動(dòng)備份系統(tǒng)的程序
Partimage
Mondo Rescue
看過(guò)“ Linux系統(tǒng)如何備份 ”的人還看了: