Linux系列:數據恢復與備份常用的兩個命令!
1、linux系統需要備份的數據
2、linux數據備份的幾種方式
完全備份就是指把所有需要備份的數據全部備份,當然完全備份可以備份整塊硬盤,整個分區或某個具體的目錄。
增量備份示意圖如下:
增量備份的優勢與劣勢:
1)優勢:備份的數據最少,占用的存儲空間最少;
2)劣勢:數據的恢復稍微麻煩一點,有幾個增量備份,就要恢復幾次;
差異備份示意圖如下:
3、備份與恢復
可以寫一個腳本,打包壓縮,用cp命令進行復制,然后寫個計劃任務,定時執行這個腳本就行。
增量備份就不適合寫腳本,因為我們每一次要判斷哪一個是新文件,這樣會很麻煩。因此,對于增量備份,我們直接使用系統給我們提供的備份和恢復的命令。
// 1、查看系統中有哪些分區 // sda打頭的的才是系統的分區,sda1/sda3/sda5 [root@image1 dev]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda5 34G 3.5G 29G 11% / tmpfs 931M 224K 931M 1% /dev/shm /dev/sda1 190M 40M 141M 23% /boot /dev/sda3 2.0G 3.1M 1.9G 1% /home /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.9_Final // 2、查看某個目錄或者文件有多大 [root@image1 /]# du -sh 目錄/文件名 [root@image1 /]# du -sh /etc/ 41M /etc/ // 3、查詢是否安裝dump命令 [root@image1 ~]# rpm -qa | grep -i dump // 4、安裝dump命令 [root@image1 ~]# yum -y install dump // 5、查詢整個分區的備份情況 // never表示從來沒有備份,假如有過備份,會顯示最后一次備份的時間。 [root@image1 ~]# dump -W Last dump(s) done (Dump '>' file systems): > /dev/sda5 ( /) Last dump: never > /dev/sda1 ( /boot) Last dump: never > /dev/sda3 ( /home) Last dump: never
① 備份分區:以備份boot分區為例。
// 下面我們以備份boot分區做實驗,只是為了做演示。 // 備份/boot分區沒啥特別意義。 // 先查看/boot分區有多大,原始目錄有39M。 [root@image1 ~]# du -sh /boot/ 39M /boot/ // 第一此備份,使用0級別下的完全備份。 [root@image1 ~]# dump -0uj -f /root/boot.bak.bz2 /boot/ // 執行最后,當出現DUMP: DUMP IS DONE,證明備份完成。 // 查看我們備份的時間,會顯示你每次備份的時間。 [root@image1 dev]# cat /etc/dumpdates /dev/sda1 0 Sun Nov 3 08:43:12 2019 +0800 // 查看完全備份后的這個文件boot.bak.bz2,一共有36M(原始文件39M)。 [root@image1 ~]# ll -h | grep boot.bak.bz2 -rw-r--r--. 1 root root 36M Nov 3 08:43 boot.bak.bz2 // 這里為了演示增量備份,我們將/root目錄下的install.log文件拷貝到/boot // 下(這里只為了做一個演示,/boot分區下不要做其他的操作,只存儲系統啟動 // 時的一些數據,即可)。 // 這里我們第二次備份,使用1級別下的增量備份。 // 先拷貝一個新的文件到/boot分區目錄下。 [root@image1 ~]# cp install.log /boot/ // 進行1級別下的增量備份。 [root@image1 ~]# dump -1uj -f /root/boot.bak1.bz2 /boot/ // 查看1級別下增量備份后的,這個文件,一共有23K。證明確實是增量備份。 [root@image1 ~]# ll -h | grep boot.bak1.bz2 -rw-r--r--. 1 root root 23K Nov 3 08:53 boot.bak1.bz2 // 再次查看我們備份的時間,這里也顯示了第二次增量備份的時間。 [root@image1 ~]# cat /etc/dumpdates /dev/sda1 0 Sun Nov 3 08:43:12 2019 +0800 /dev/sda1 1 Sun Nov 3 08:53:00 2019 +0800 // 做完實驗后,記得把/boot分區下的install.log這個文件刪除。 [root@image1 ~]# rm -rf /boot/install.log
② 備份文件或者目錄:以備份/etc目錄為例。
// 注:備份文件/目錄,只能使用0級別,進行完全備份,而不再支持增量備份。 // 先查看一下/etc目錄有多大 [root@image1 /]# du -sh /etc/ 41M /etc/ // 備份文件或者目錄,只能使用0級別下的完全備份。 [root@image1 ~]# dump -0j -f /root/etc.bak.bz2 /etc/ // 查看備份后的備份文件 [root@image1 ~]# ll -h | grep etc.bak.bz2 -rw-r--r--. 1 root root 13M Nov 3 09:09 etc.bak.bz2
① -C:比較備份數據和實際數據的變化。
// 這個命令你只要使用了-C,它就會自動去和備份之前的分區、目錄、文件 // 進行比較。 // 假如完全一樣,日志到filesys = /boot這一行就結束了。 // 假如不一樣,在filesys = /boot這一行下,會有一些其他的日志信息出現。 [root@image1 ~]# restore -C -f /root/boot.bak.bz2 Dump tape is compressed. Dump date: Sun Nov 3 08:43:12 2019 Dumped from: the epoch Level 0 dump of /boot on image1:/dev/sda1 Label: none filesys = /boot // 這里結果顯示備份數據和實際數據之間沒有任何差別;假如有差別, // filesys = /boot這一行的下面還會有很多其它的日志信息。 // 會有類似No such file or directory這樣子的提示信息。
② -t:查看模式,用于查看備份文件中擁有哪些數據。
[root@image1 ~]# restore -t -f /root/boot.bak.bz2 Dump tape is compressed. Dump date: Sun Nov 3 08:43:12 2019 Dumped from: the epoch Level 0 dump of /boot on image1:/dev/sda1 Label: none 2 . 11 ./lost+found 12 ./grub 24 ./grub/grub.conf 13 ./grub/splash.xpm.gz 25 ./grub/menu.lst 26 ./grub/device.map .......
③ -r:還原模式,用于數據還原。
還原分區如下:
// 這里有一個問題:恢復數據的時候,不僅要恢復第一次完全備份的數據,還要 // 恢復第二次、第三次...所有的增量備份的數據。 // 我們創建一個目錄restore,把前面備份的數據恢復到這里面去 // 創建一個restore目錄 [root@image1 ~]# mkdir restore // 進入到該目錄下 [root@image1 ~]# cd restore/ // 先恢復第一次完全備份的數據 [root@image1 restore]# restore -r -f /root/boot.bak.bz2 Dump tape is compressed. // 再恢復第二次完全備份的數據 [root@image1 restore]# restore -r -f /root/boot.bak1.bz2 Dump tape is compressed.
還原文件如下:
// 創建一個restore目錄 [root@image1 ~]# mkdir bb // 進入到該目錄下 [root@image1 ~]# cd bb/ // 恢復/etc目錄的命令如下 [root@image1 bb]# restore -r -f /root/etc.bak.bz2 Dump tape is compressed. ./lost+found: (inode 11) not found on tape ./boot: (inode 784897) not found on tape ./dev: (inode 1569793) not found on tape ./home: (inode 915713) not found on tape ./proc: (inode 654081) not found on tape ./sys: (inode 1177345) not found on tape ./var: (inode 130817) not found on tape ./tmp: (inode 1308161) not found on tape ./root: (inode 392449) not found on tape
Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。