linux系統需要備份的資料有/root,/home,/var/spool/mail,/etc及日誌等其他目錄。
安裝服務的資料需要備份,如apache需要備份的資料有配置檔案、網頁主目錄、日誌檔案;原始碼包安裝的mysql需要備份/usr/local/mysql/data,rpm包安裝的mysql需要備份/var/lib/mysql。
(1) 備份策略
完全備份:就是指把所有需要備份的資料全部備份,當然完全備份可以備份整塊硬碟,整個分割槽或某個具體的目錄。特點備份較慢,且占用的空間很大。
差異備份:前兩者的折中辦法,與增量備份的差別在於,第二次備份是與第一次的完全備份相比。
2. 備份命令
(1) dump命令
其格式為:
dump [選項] 備份之後的檔名 原檔案或目錄
其中,-level選項就是我們所說的0-9十個備份級別;-f 檔名選項指定備份之後的檔名;-u選項表示備份成功之後,把備份時間記錄在/etc/dumpdates檔案;-v選項顯示備份過程中更多的輸出資訊;-j選項表示呼叫bzlib庫壓縮備份檔案,其實就是把備份檔案壓縮為.bz2格式;-w選項顯示被dump的分割槽的備份等級及備份時間。
例1:備份分割槽
# 備份命令。先執行一次完全備份,並壓縮和更新備份時間[root@localhost ~]# dump -0uj -f /root/boot.bak.bz2 /boot/......
dump: wrote 22370kb uncompressed, 20288kb compressed,
1.103:1
dump: dump is done
# 檢視備份時間檔案
[root@localhost ~]# cat /etc/dumpdates
/dev/sda1 0 sun aug 16
06:54:09
2015 +0800
/dev/sda1 1 tue aug 4
02:33:29
2015 +0800
#複製日誌檔案到boot分割槽
[root@localhost ~]# cp
install.log /boot/#增量備份boot分割槽,並壓縮
[root@localhost ~]# dump -1uj -f /boot/boot.bak1.bz2 /boot/# 檢視檔案的大小
[root@localhost ~]# ll -h /root/
-rw-r--r--. 1 root root 18k aug 16
07:00
boot.bak1.bz2
-rw-r--r--. 1 root root 20m aug 16
06:54
boot.bak.bz2
# 查詢分割槽的備份時間及備份級別的
[root@localhost ~]# dump -w
last dump(s)
done (dump '
>
'file
systems):
> /dev/sda5 ( /) last dump: never
/dev/sda1 ( /boot) last dump: level 1, date sun aug 16
06:58:05
2015
> /dev/sda2 ( /home) last dump: never
> /dev/sdb1 (/root/disk1) last dump: never
> /dev/sdb5 (/root/disk5) last dump: never
例2:備份檔案或目錄
# 完全備份/etc/目錄,只能使用0級別進行完全備份,而不再支援增量備份[root@localhost ~]# dump -0j -f /root/etc.dump.bz2 /etc/
(2) restore命令
恢復命令restore的格式為:
restore [模式選項] [選項]
其中,restore命令常用的模式有四種,且這四種模式不能混用。包括:
-c-----比較模式,比較備份資料和實際資料的變換
-i-----進入互動模式,手工選擇需要恢復的檔案
-t-----檢視模式,用於檢視備份檔案中擁有哪些資料
-r-----還原模式,用於資料還原
而選項包括:-f------指定備份檔案的檔名
例1:比較備份和實際資料的變化
#把boot目錄中核心映象檔案改個名字[root@localhost ~]# mv /boot/vmlinuz-2.6.32-431.el6.i686 /boot/vmlinuz-2.6.32-431
.el6.i686.bak
#restore發現核心映象檔案丟失
[root@localhost ~]# restore -c -f /root/boot.bak.bz2
dump tape is compressed.
dump
date: sun aug 16
06:54:09
2015
dumped from: the epoch
level
0 dump of /boot on localhost.localdomain:/dev/sda1
label: none
filesys = /boot
restore: unable to
stat ./vmlinuz-2.6.32-431.el6.i686: no such file
or directory
some files were modified! 1 compare errors
例2:檢視模式
[root@localhost ~]# restore -t -f /root/boot.bak.bz2dump tape is compressed.
dump
date: sun aug 16
06:54:09
2015
dumped from: the epoch
level
0 dump of /boot on localhost.localdomain:/dev/sda1
label: none
2.11 ./lost+found
32385 ./grub
32408 ./grub/grub.conf
32386 ./grub/splash.xpm.gz
32392 ./grub/menu.lst
32393 ./grub/device.map
32394 ./grub/stage1
32395 ./grub/stage2
32396 ./grub/e2fs_stage1_5
32397 ./grub/fat_stage1_5
32398 ./grub/ffs_stage1_5
32399 ./grub/iso9660_stage1_5
32400 ./grub/jfs_stage1_5
32401 ./grub/minix_stage1_5
32402 ./grub/reiserfs_stage1_5
32403 ./grub/ufs2_stage1_5
32404 ./grub/vstafs_stage1_5
32405 ./grub/xfs_stage1_5
32406 ./grub/.grub.conf.swp
32387 ./efi
32388 ./efi/efi
32389 ./efi/efi/redhat
32390 ./efi/efi/redhat/grub.efi
12 ./.vmlinuz-2.6.32-431
.el6.i686.hmac
13 ./system.map-2.6.32-431
.el6.i686
14 ./config-2.6.32-431
.el6.i686
15 ./symvers-2.6.32-431
.el6.i686.gz
16 ./vmlinuz-2.6.32-431
.el6.i686
17 ./initramfs-2.6.32-431.el6.i686.img
例3:還原模式
#(1) 還原boot.bak.bz2分割槽備份
#先還原完全備份的資料
[root@localhost ~]# mkdir
boot.test
[root@localhost ~]# cd boot.test/#解壓縮
[root@localhost boot.test]# restore -r -f /root/boot.bak.bz2
dump tape is compressed.
#再恢復增量備份資料
[root@localhost boot.test]# restore -r -f /root/boot.bak1.bz2
dump tape is compressed.
./boot.bak1.bz2: (inode 19
) not found on tape
#(2) 還原/etc目錄的備份etc.dump.bz2
restore -r -f etc.dump.bz2
Effective Java 學習筆記 23
不要在新 中使用原生態型別,而應該使用泛型。泛型的優點 1.編譯時就會進行型別檢查。當向乙個容器中裝入物件時,編譯器會檢查,插入的例項是不是前面宣告的型別。而不用等到執行時才會發現,而丟擲classcastexception.2.從集合中取元素不用再進行手工轉換,編譯器會替你進行隱式的轉換。盡量使用...
VTK學習筆記2 3
整理於 科學計算三維視覺化 資料集 dataset 點 point 和資料 data 點之間有兩種形態 連線 非連線多個相關的點組成單元點之間的連線可以是顯式也可以是隱式資料可以是標量 scalar 和向量 vector 資料集 dataset datasets 包括 5種資料集 imagedata...
Python學習筆記 23
classa 直接在類中定義的屬性是類屬性 類屬性可以通過類或者類的例項訪問 但類屬性只能通過類物件修改,無法通過例項修改 count 5def init self 例項屬性,通過例項物件新增的屬性 例項屬性只能通過例項物件來訪問修改,類物件無法訪問修改 self.name 小王 例項方法 在類中定...