Linux學習筆記 23 Linux備份

2022-05-03 21:06:13 字數 4874 閱讀 2103

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.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

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 小王 例項方法 在類中定...