檔案的基本管理和XFS檔案系統備份恢復

寰宇001發表於2020-10-30

本節所講內容:
1 Linux系統目錄結構和相對/絕對路徑。
2 建立/複製/刪除檔案,rm -rf / 意外事故
3 檢視檔案內容的命令
4 實戰:xfs檔案系統的備份和恢復

Linux系統目錄結構和相對/絕對路徑

1系統目錄結構
在WIN系統中,檢視檔案先進入相應的碟符,然後進入檔案目錄
在這裡插入圖片描述
在WIN中,它是多根 c:\ d:\ e:
Linux只有一個根目錄
在這裡插入圖片描述
使用tree命令檢視linux目錄結構,這個命令預設是沒有安裝的,需要手工安裝一下

[root@63 ~]# mount /dev/sr0  /media/
mount: /dev/sr0 防寫,將以只讀方式掛載
[root@63 ~]# rpm -ivh /media/Packages/tree-1.6.0-10.el7.x86_64.rpm

檢視/tmp目錄結構

[root@63 ~]# tree  /tmp/

檢視根下有哪些檔案:
在這裡插入圖片描述
根下的目錄作用說明:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
2 絕對路徑和相對路徑
路徑:在我們平時使用計算機時要找到需要的檔案就必須知道檔案的位置,而表示檔案的位置的方式就是路徑
絕對路徑:在Linux中,絕對路徑是從”/”開始的,比如/usr、/etc/passwd。如果一個路徑是從根(/)開始的,它一定是絕對路徑.
相對路徑:相對路徑是以 . 或 … 開始的,

 [root@63 etc]# pwd  #判斷使用者當前所處的位置

絕對路徑: 從/開始的路徑 /home/mk
相對路徑: 相對於當前目錄開始,a.txt ./a.txt …/miao/b.txt 當前目錄在/etc

[root@63 ~]# cd /etc/
[root@63 etc]# ll passwd 
-rw-r--r-- 1 root root 2116 1116 14:57 passwd
[root@xuegod63 etc]# ll /etc/passwd
-rw-r--r-- 1 root root 2116 1116 14:57 /etc/passwd

2 檔案的管理
檔案管理方式有多種:
改變目錄: cd
建立/修改/移動/刪除: touch mkdir mv vi rm cp
建立檔案和資料夾
命令之:touch 
作用:常用來建立空檔案,如果檔案存在,則修改這個檔案的時間
補充:檔案的三種時間

[root@63 ~]# ll /etc/passwd  #檢視檔案修改的時間
-rw-r--r-- 1 root root 2116 1116 14:57 /etc/passwd
[root@63 ~]# stat /etc/passwd  #檢視檔案屬性(其中包括檔案時間屬性)

檔案:"/etc/passwd"
大小:2116 塊:8 IO 塊:4096 普通檔案
裝置:803h/2051d Inode:9401663 硬連結:1
許可權:(0644/-rw-r–r--) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2017-11-16 14:57:39.923177258 +0800
最近更改:2017-11-16 14:57:39.397177256 +0800
最近改動:2017-11-16 14:57:39.409177256 +0800

注:
訪問時間:atime 檢視內容 cat a.txt
修改時間:mtime 修改內容 vim a.txt
改變時間:ctime 檔案屬性,比如許可權 change time。 chmod +x a.sh

語法:touch 檔名

[root@63 ~]# cd /opt/
[root@63 opt]# touch a.txt
[root@63 opt]# touch file1 file2
[root@63 opt]# touch file{6..20}  #建立file6到file20的檔案
[root@63 opt]# ls
a.txt  file10  file12  file14  file16  file18  file2   file6  file8  rh
file1  file11  file13  file15  file17  file19  file20  file7  file9

[root@63 opt]#  touch -d "20181019 21:30" xuegod.txt
[root@63 opt]# ll xuegod.txt 
-rw-r--r-- 1 root root 0 1019 2018 xuegod.txt

.2 使用vim和重定向建立一個新檔案
用vim命令建立一個新檔案

[root@63 mnt]# vim xuegod-1.txt

用重定向建立一新檔案

[root@63 mnt]#echo  aaa > xuegod.txt

2 命令之:mkdir
作用:建立目錄
語法:mkdir (選項) 檔名
例:

[root@63 opt]# mkdir dir1
[root@63 opt]# mkdir dir2 dir3 /home/dir4
[root@63 opt]# ls /home/
dir4  mk
[root@63 opt]# mkdir /tmp/a/b/c
mkdir: 無法建立目錄"/tmp/a/b/c": 沒有那個檔案或目錄
[root@63 opt]# mkdir -p /tmp/a/b/c  #在建立一個目錄的時候,如果這個目錄的上一級不存在的話,要加引數-p
[root@63 opt]# ls /tmp/a/b/
c

2 刪除檔案和目錄
用到的命令:rm
作用:可以刪除一個目錄中的一個或多個檔案或目錄,對於連結檔案,只是刪除整個連結檔案,而原檔案保持不變的
語法:rm (選項) 處理物件
選項:
-f 強制刪除,沒有提示
-r 刪除目錄
例子:

[root@63 opt]# rm -rf a.txt 
[root@63 opt]# rm -rf a.txt dir
[root@63 opt]# rm -rf file*
rm -rf  (慎用,一定要在刪除以前確定一下所在目錄,防止誤刪除重要資料)

3 複製檔案
命令:cp 原始檔/目錄 目錄檔案/目錄
選項:-R/r:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理
例子:

[root@63 ~]# cp /etc/passwd /opt/   #複製檔案
[root@63 ~]# cp -r /boot/grub /opt/  #複製目錄

4 移動檔案

[root@63 opt]# mv passwd  dir1
[root@63 opt]# mv xuegod.txt dir1/a.txt   #在移動檔案的時候支援改名操作

檢視檔案

1 命令之:cat
語法:cat 檔名
作用:檢視檔案內容,一次顯示整個檔案的內容
例子: [root@xuegod63 ~]# cat /etc/passwd

.2 命令之:more
作用:以分頁形式顯示檔案內容
語法:more + 檔名
說明: 按下回車重新整理一行,按下空格重新整理一屏,輸入q鍵退出

3 命令之:less
作用:和more功能一樣
語法:less +檔名
說明:linux中more與less的區別
more:不支援後退,但幾乎不需要加引數,空格鍵是向下翻頁,Enter鍵是向下翻一行,在不需要後退的情況下比較方便
less:支援前後翻滾,既可以向上翻頁(pageup按鍵),也可以向下翻頁(pagedown按鍵)。,空格鍵是向下翻頁,Enter鍵是向下翻一行

4 命令之:head
作用: 用於顯示檔案的開頭的內容。在預設情況下,head命令顯示檔案的頭10行內容
語法:head(選項)檔名
引數: -n 顯示從檔案頭開始的行數

[root@63 opt]# head /etc/passwd
[root@63 opt]# head -n 3 /etc/passwd #顯示前3

5 命令之:tail
作用: 用於顯示檔案中的尾部內容。預設在螢幕上顯示指定檔案的末尾10行
語法:tail (選項)檔名
引數:
-n 顯示檔案尾部多少行的內容(n為數字)
-f 動態顯示資料(不關閉),常用來檢視日誌

[root@63 ~]# tail -n 3 /var/log/secure  #檢視最後3行記錄
[root@63 ~]# tail -f /var/log/secure   #在一個終端執行此命令動態檢視檔案內容
[root@63 ~]# ssh root@192.168.1.63   #在另一個終端遠端登入Linux,登入成功後
[root@63 ~]# tail -f /var/log/secure  #可以動態檢視到登入成功的日誌
Nov 17 00:08:32 xuegod63 sshd[2924]: Accepted password for root from 192.168.1.63 port 39904 ssh2

4 實戰:xfs檔案系統的備份和恢復

XFS提供了 xfsdump 和 xfsrestore 工具協助備份XFS檔案系統中的資料。xfsdump 按inode順序備份一個XFS檔案系統。
centos7選擇xfs格式作為預設檔案系統,而且不再使用以前的ext,仍然支援ext4,xfs專為大資料產生,每個單個檔案系統最大可以支援8eb,單個檔案可以支援16tb,不僅資料量大,而且擴充套件性高。還可以通過xfsdump,xfsrestore來備份和恢復。
與傳統的UNIX檔案系統不同,XFS不需要在備份前被解除安裝;對使用中的XFS檔案系統做備份就可以保證映象的一致性。XFS的備份和恢復的過程是可以被中斷然後繼續的,無須凍結檔案系統。xfsdump 甚至提供了高效能的多執行緒備份操作——它把一次dump拆分成多個資料流,每個資料流可以被髮往不同的目的地
首先了解一下xfsdump的備份級別有以下兩種,預設為0(即完全備份)
0 級別代表: 完全備份
1 到9級別代表: 增量備份
擴充套件:
完全備份:每次都把指定的備份目錄完整的複製一遍,不管目錄下的檔案有沒有變化;
增量備份:每次將之前(第一次、第二次、直到前一次)做過備份之後有變化的檔案進行備份;
差異備份:每次都將第一次完整備份以來有變化的檔案進行備份。

1 環境準備
實驗環境:
系統CENTOS7.2 新增一塊虛擬硬碟(準備一個測試分割槽)
正常使用一塊磁碟過程如下:
新增磁碟大小:20G 分割槽格式化掛載
在這裡插入圖片描述
對新新增的硬碟進行格式化:

[root@63 ~]# fdisk /dev/sdb					#指定分割槽的裝置
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。
Device does not contain a recognized partition table
使用磁碟識別符號 0x06d5a427 建立新的 DOS 磁碟標籤。
命令(輸入 m 獲取幫助):n  #建立一個新的分割槽
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p  #建立一個主分割槽
分割槽號 (1-4,預設 1):
起始 扇區 (2048-41943039,預設為 2048):
將使用預設值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,預設為 41943039)+1G  #指定分割槽大小
分割槽 1 已設定為 Linux 型別,大小設為 1 GiB
命令(輸入 m 獲取幫助):p  	#列印分割槽表
磁碟 /dev/sdb:21.5 GB, 21474836480 位元組,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理)512 位元組 / 512 位元組
I/O 大小(最小/最佳)512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x06d5a427
   裝置 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
命令(輸入 m 獲取幫助):w  	#儲存
The partition table has been altered!
Calling ioctl() to re-read partition table.

正在同步磁碟。

[root@63 ~]# ls  /dev/sdb*
/dev/sdb  /dev/sdb1

使用新的分割槽,格式化分割槽,並進行掛載

[root@63 ~]# mkfs.xfs /dev/sdb1
[root@63 ~]# mkdir /sdb1     #建立掛載點
[root@63 ~]# mount /dev/sdb1 /sdb1   #掛載

準備備份測試檔案

[root@63 ~]# cd /sdb1/
[root@63 sdb1]# cp /etc/passwd ./
[root@63 sdb1]# mkdir test
[root@63 sdb1]# touch test/a
[root@63 sdb1]# tree /sdb1/
[root@63 sdb1]# tree /sdb1/
/sdb1/
├── passwd
└── test
    └── a

2 備份
1、備份整個分割槽。 (這個功能就像是虛擬機器的快照,伺服器被黑後,進行快速恢復)
xfsdump -f 備份存放位置 要備份路徑或裝置檔案
注意:備份的路徑這裡不能寫成/sdb1/。 可以是/dev/sdb1 或/sdb1

[root@63 sdb1]# xfsdump -f /opt/dump_sdb1  /dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control
========== dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1  指定備份會話標籤
session label entered: "dump_sdb1"
 --------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of xuegod63.cn:/sdb1
xfsdump: dump date: Fri Nov 17 12:24:53 2017
xfsdump: session id: b5a25fcd-d43d-4308-bf29-142066f89d9a
xfsdump: session label: "dump_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes
============== media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1  指定裝置標籤,就是對要備份的裝置做一個描述
media label entered: "sdb1"
 --------------------------------- end dialog --------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 24544 bytes
xfsdump: dump size (non-dir files) : 2592 bytes
xfsdump: dump complete: 46 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dump_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS

2、 指定備份時免互動操作,方便後期做定時備份

[root@63 sdb1]# xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1
-L  :xfsdump  紀錄每次備份的 session 標頭,這裡可以填寫針對此檔案系統的簡易說明
-M  :xfsdump 可以紀錄儲存媒體的標頭,這裡可以填寫此媒體的簡易說明

3、指定只備份分割槽中某個目錄
引數:-s 檔案路徑 只對指定的檔案進行備份,-s指定時,路徑寫的是相對路徑(-s可以是檔案或目錄)

[root@63 sdb1]# xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1

4、檢視備份資訊與內容
備份成功後,我們就可以在/var/lib/xfsdump/inventory目錄下看到生成的檔案資訊

[root@63 opt]# xfsdump  -I(字母大寫i)

測試恢復:先刪除之前建立的內容

[root@63 sdb1]# ls
passwd  test
[root@63 sdb1]# pwd
/sdb1
[root@63 sdb1]# rm -rf ./*

3 檔案系統恢復
語法:xfsrestore -f 指定恢復檔案的位置 指定存放恢復後的檔案的路徑

[root@63 opt]# xfsrestore -f /opt/dump_sdb1  /sdb1

檢視恢復情況

[root@63 ~]# ls /sdb1/

恢復單個檔案如下:

[root@63 ~]# mkdir /var/test/ 
[root@63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/test/
[root@63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/  #恢復目錄

注:

使用 xfsdump 時,請注意下面下面的幾個限制:

1、xfsdump 不支援沒有掛載的檔案系統備份!所以只能備份已掛載的!
2、xfsdump 必須使用 root 的許可權才能操作 (涉及檔案系統的關係)
3、xfsdump 只能備份 XFS 檔案系統
4、xfsdump 備份下來的資料 (檔案或儲存媒體) 只能讓 xfsrestore 解析
5、xfsdump 是透過檔案系統的 UUID 來分辨各個備份檔的,因此不能備份兩個具有相同 UUID 的檔案系統

4 增量備份
概念
增量備份是指在一次全備份或上一次增量備份後,以後每次的備份只需備份與前一次相比增加或者被修改的檔案。這就意味著,第一次增量備份的物件是進行全備後所產生的增加和修改的檔案;第二次增量備份的物件是進行第一次增量備份後所產生的增加和修改的檔案,以此類推。
優缺點
優點:沒有重複的備份資料,因此備份的資料量不大,備份所需的時間很短。
缺點:資料恢復相對比較麻煩,它需要上一次全備份和所有增量備份的內容才能夠完全恢復成功,並且它們必須沿著從全備份到依次增量備份的時間順序逐個反推恢復,因此可能會延長的恢復時間

實戰: 增量備份檔案系統
準備一個備份目錄進行備份

[root@63 sdb1]# tree  /sdb1
/sdb1/
├── passwd
└── test
    └── a

對上面的內容進行第一次全備

[root@63 sdb1]# xfsdump -f /opt/test-full /sdb1 -L test-full -M media0

增加一些內容,然後進行第1次增量備份

[root@63 ~]# touch  /sdb1/1.txt /sdb1/2.txt
[root@63 ~]# tree  /sdb1/
/sdb1/
├── 1.txt
├── 2.txt
├── passwd
└── test
└── a 
[root@63 sdb1]# xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0
-l <level>  做一個等級為1的備份

再次增加內容,然後進行level 2級別的增量備

[root@63 sdb1]# touch  /sdb1/test/a.txt  /sdb1/test/b.txt
[root@63 ~]# tree /sdb1/
/sdb1/
├── 1.txt
├── 2.txt
├── passwd
└── test
    ├── a
    ├── a.txt
└── b.txt 
[root@63 sdb1]# xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0
[root@63 ~]# rm -rf /sdb1/*    #刪除所有資料

現在進行恢復,要想恢復全部全部資料,包括新新增的檔案,如何恢復?
步驟:
1、先恢復完全備份
2、情況1: 恢復最後一次增量備份(如果兩次增量備份都是1級的,所以只需要恢復最後一個增量就可以了。
3、情況2:如果你做的是第一次是1級備,第二次是2級備,那麼你在恢復的時候就需要先恢復完全備份,然後是1級備,最後是2級備)

[root@63 ~]# xfsrestore -f /opt/test-full /sdb1/
[root@63 ~]# xfsrestore -f /opt/test-back2 /sdb1/  #故意先恢復back2,檢視
[root@63 ~]# tree /sdb1/  #檢視,發現沒有1.txt ,2.txt 
/sdb1/
├── passwd
└── test
    ├── a
    ├── a.txt
└── b.txt 
[root@63 ~]# xfsrestore -f /opt/test-back1 /sdb1/   
[root@63 ~]# tree /sdb1/  

到此,資料恢復成功了。

總結:
1 Linux系統目錄結構,相對/絕對路徑。
2 建立/複製/刪除檔案,rm -rf / 意外事故
3 檢視檔案內容的命令
4 實戰:xfs檔案系統的備份和恢復

相關文章