首頁 > linux教程 > Linux數據備份與恢復 閱讀:0更新時間:2020-03-28 01:07:50

Linux dump命令用法詳解:備份分區、文件或目錄

在系統學習 dump 命令之前,由于 CentOS 6.x 系統默認是沒有安裝此命令的,因此需要我們手動安裝 dump 命令,安裝命令如下:

[root@localhost ~]# yum -y install dump


dump 命令使用“備份級別”來實現增量備份,它支持 0~9 共 10 個備份級別。其中,0 級別指的就是完全備份,1~9 級別都是增量備份級別。

舉個列子,當我們備份一份數據時,第一次備份應該使用 0 級別,會把所有數據完全備份一次;第二次備份就可以使用 1 級別了,它會和 0 級別進行比較,把 0 級別備份之后變化的數據進行備份;第三次備份使用  2 級別,2 級別會和 1 級別進行比較,把 1 級別備份之后變化的數據進行備份,以此類推。

需要注意的是,只有在備份整個分區或整塊硬盤時,才能支持 1~9 的增量備份級別;如果只是備份某個文件或不是分區的目錄,則只能使用 0 級別進行完全備份。

dump 命令的基本格式如下:

[root@localhost ~]# dump [選項] 備份之后的文件名 原文件或目錄

選項:
-level:就是我們說的 0~9 共 10 個備份級別;
-f  文件名:指定備份之后的文件名;
-u:備份成功之后,把備份時間、備份級別以及實施備份的文件系統等信息,都記錄在 /etc/dumpdates 文件中;
-v:顯示備份過程中更多的輸出信息;
-j:調用 bzlib 庫壓縮備份文件,其實就是把備份文件壓縮為 .bz2 格式,默認壓縮等級是 2;
-W:顯示允許被 dump 的分區的備份等級及備份時間;

dump 命令是一個較為復雜的命令,如果我們只是想要實現數據的備份與恢復,那么掌握以上幾個選項就足夠了。

備份分區

我們先來看看如何使用 0 級別備份分區。命令如下:

[root@localhost ~]# df -h
文件系統  容量 已用 可用 已用% 掛載點
/dev/sda3   20G 3.0G 16G 17% /
tmpfs   30 6M 0 30 6M 0% /dev/shm
/dev/sda1   194M 26M 158M 15% /boot
/dev/sr0   3.5G 3.5G 0 100% /mnt/cdrom
#系統中我們就分了/分區和/boot分區。根分區太大,備份速度太慢,我們還是備份/boot分區吧
[rootSlocalhost ~]# dump -0uj -f /root/boot.bak.bz2 /boot/
#備份命令。先執行一次完全備份,并壓縮和更新備份時間
DUMP: Date of this level 0 dump: Wed Jun 5 03:08:22 2013
#備份的級別和時間
DUMP: Dumping /dev/sdal (/boot) to /root/boot.bak.bz2
#備份源和目標
DUMP: Label: none
#分區沒有卷標
DUMP: Writing 10 Kilobyte records
DUMP: Compressing output at compression level 2 (bzlib)
#備份時壓縮
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 21846 blocks.
DUMP: Volume 1 started with block 1 at: Wed Jun 5 03:08:22 2013
DUMP: dumping (Pass III) [directories]
#開始dump 備份
DUMP: dumping (Pass XV) [regular files]
DUMP: Closing /root/boot.bak.bz2
#備份結朿,生成備份文件
DUMP: Volume 1 completed at: Wed Jun 5 03:08:30 2013
DUMP: Volume 1 took 0:00:08
DUMP: Volume 1 transfer rate: 2370 kB/s
DUMP: Volume 1 21930kB uncompressed, 18962kB compressed, 1.157:1
#數據容量
DUMP: 2X930 blocks (21.42MB) on 1 volume(s)
DUMP: finished in 7 seconds, throughput 3132 kBytes/sec
DUMP: Date of this level 0 dump: Wed Jun 5 03:08:22 2013
DUMP: Date this dump completed: Wed Jun 5 03:08:30 2013
DUMP: Average transfer rate: 2370 kB/s
DUMP: Wrote 21930kB uncompressed, 18962kB compressed, 1.157:1
[root@localhost ~]# cat /etc/dumpdates
#查看備份時間文件
/dev/sdal 0 Wed Jun 5 03:08:22 2013 +0800
#備份的分區 備份級別 備份曰期
[root@localhost @]# 11 -h /root/boot.bak.bz2
-rw-r--r--. 1 root root 19M 6 月 5 03:08 /root/boot.bak.bz2
#備份文件生成了

如果 /boot 分區的內容發生了變化,則可以使用 1 級別進行增量備份。當然,如果數據會繼續發生變化,則可以繼續使用 2~9 級別增量備份。命令如下:

[root@localhost ~]# ll -h /root/install.log
-rw-r--r--.1 root root 25K 4月 10 21:49 /root/install.log
#查看安裝軟件包日志的大小為25KB
[root@localhost ~]# cp install.log /boot/
#復制日志文件到/boot分區
[root@localhost ~]# dump -1uj -f /root/boot.bak1.bz2 /boot/
#增量備份/boot分區,并壓縮
[root@localhost ~]# ll -h boot.bak*
-rw-r--r--.1 root root 18K 6月 5 03:16 boot.bak1.bz2
-rw-r--r--.1 root root 19M 6月 5 03:08 boot.bak.bz2
#boot.bak1.bz2壓縮文件只有18KB,證明增量備份只備份了0級別以后變化的數據
#boot.bak1.bz2壓縮文件只有18KB,證明增量備份只備份了0級別以后變化的數據

如果備份的是整個分區,那么是可以使用“dump -W”命令來查詢分區的備份時間及備份級別的。不過要注意,如果備份時沒有使用“-u”選項,那么“dump -W”命令是不會記錄備份的時間和級別的。命令如下:

[root@localhost ~]# dump -W
Last dump(s) done (Dump '>' file systems):
/dev/sda3 ( /) Last dump:Level 1, Date Wed Jun 5 02:31:50 2013
/dev/sda1 ( /boot) Last dump:Level 1, Date Wed Jun 5 03:16:27 2013
#我的/分區和/boot分區都進行過dump備份,/boot分區的最新備份級別是1

dump命令可以非常方便地實現增量備份,但是如何實現差異備份呢?其實也很簡單,先使用 0 級別完全備份一次,以后的每次備份都使用 1 級別進行備份。

備份文件或目錄

dump 命令也可以文件或目錄,不過,只要不是備份分區,就只能使用 0 級別進行完全備份,而不再支持增量備份。同時,不能使用“-u”選項更新分區的備份時間,當然也不能使用“dump -W”命令查詢到文件或目錄的備份。

我們說 /etc/ 目錄是重要的配置文件目錄,那么我們就備份這個目錄來看看吧。命令如下:

[root@localhost ~]# dump -0j -f /root/etc.dump.bz2 /etc/
#完全備份/etc/目錄
[root@localhost ~]# ll -h /root/etc.dump.bz2
-rw-r--r--.1 root root 8.6M 6月 5 03:26 /root/etc.dump.bz2
#查看備份文件
不過,如果使用增量備份會怎么樣呢?命令如下:
[root@localhost ~]# dump -1j -f /root/etc.dump1.bz2 /etc/
DUMP:Only level 0 dumps are allowed on a subdirectory
DUMP:The ENTIRE dump is aborted.
#備份失敗了,目錄備份只能使用0級別

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩