天天看點

38 linux資料備份與恢複

1、linux下經常需要備份的目錄:

/root/目錄、/home/目錄、/etc/目錄、/var/spool/mail/目錄、其他目錄(自己安裝的服務,如apache、mysql)

apache需要備份的資料:配置檔案、網頁主目錄、日志檔案

mysql需要備份的資料:源碼包安裝的mysql:/usr/local/mysql/data、rpm包安裝的msyql:/var/lib/mysql

2、備份政策

2.1 完全備份:把所有需要備份的資料全部備份,當然完全備份可以備份整塊硬碟,整個分區或某個具體目錄(備份慢,恢複友善)

2.2 增量備份:備份新增的資料,不需要全部重新備份(備份快,恢複比較麻煩,有多少增量備份就要恢複多少個)

2.3 差異備份:每一次備份都跟第一次完全備份比較,隻備份完全備份中不存在的(比完全備份少一點,比增量備份恢複好一些,但現實還是完全備份與增量備份用的多)

3、dump(備份) 與  restore(恢複)指令:

【注】:雖然可以自己寫腳本cp、mv、rm但是太麻煩,系統提供了這兩個指令很友善

3.1 dump  [選項]  備份後的檔案名   源檔案或目錄

選項:

-level:就是我們說的0-9十個備份級别,其中0就是完全備份,1就是第一次增量備份,2就是第二次增量備份。。,如“-0” 

-f檔案名:指定備份之後的檔案名

-u:備份成功之後,把備份時間記錄在/etc/dumpdates檔案中

-v:顯示備份過程中更多的輸出資訊

-j:調用bzlib庫壓縮備份檔案,其實就是把備份檔案壓縮為bz2格式

-W:顯示允許被dump的分區的備份等級以及備份時間

eg1:備份分區

完全備份

dump  -0uj  -f  /root/boot.bak.bz2  /boot/             //執行一次完全備份,并壓縮和更新備份時間

cat  /etc/dumpdates          //檢視備份時間檔案

增量備份

cp   /root/install.log   /boot   //複制install.log 日志檔案到boot下,然後用來測試增量備份

dump -1uj -f  /root/boot.bak1.bz2   /boot/     //增量備份boot分區并壓縮

dump  -W

eg2:備份檔案或者目錄(無法使用增量備份,增量備份隻有分區才能用,也不能加-u選項)

dump  -0j  -f   /root/etc.bak.bz2  /etc              //備份/etc目錄

4、resore 恢複備份資料:restore [模式選項][選項]

模式選項:restore指令常用的模式有以下四種,這四個模式不能混用,隻能選一個。

-C:比較備份資料和實際資料變化

-i:進入互動模式,手工選擇需要回複的檔案

-t:檢視模式,用于檢視備份檔案中擁有哪些資料

-r:還原模式,用于資料還原

選項:

-f:制定備份檔案的檔案名

eg1:restore  -C  -f    /root/boot.bak.bz2              

mv /boot/vmlinuz-2.6.32-431.el6.x86_64    /boot/vmlinuz-2.6.32-431.el6.x86_64.bak    //為了測試-C作用,記住測試完成後一定要還原,否則下次無法啟動了

eg2:restore  -t  -f    /root/boot.bak.bz2          //檢視 /root/boot.bak.bz2都備份了哪些資料

eg3:還原 boot備份分區

 //先建立個目錄,省得到時候恢複的到處都是

mkdir  boot.test              

cd  boot.test/

restore -r -f  /root/boot.bak.bz2     先還原完全備份資料

restore -r -f  /root/boot.bak1.bz2 

eg4:還原目錄也一樣

mkdir  etc.test              

cd  etc.test              

restore -r -f  /root/etc.bak.bz2