目錄
- 一、inode與block
- (一)概述
- 1、檔案資料
- 2、block (塊)
- 3、inode (索引節點)
- 4、Linux系統檔案三個主要的時間屬性
- 5、總結
- (二)inode 號碼
- 1、用戶通過檔案名打開檔案時,系統內部的程序
- 2、查看檔案名對應的 inode 號碼有兩種方式:
- (三)inode的大小
- (四)檔案存盤
- 1、硬碟磁區后結構
- 2、訪問檔案的簡單流程
- 二、inode節點耗盡故障處理
- 1、添加一塊磁盤
- 2、管理磁盤
- 3、格式化為ext3
- 4、在根目錄下創建子目錄/data用于掛載
- 5、使用for回圈創建檔案,超出inode號無法創建
- 6、解除inode占用,即可創建檔案
- 三、EXT型別檔案恢復
- 詳細程序(接上述inode耗盡實驗的配置)
- 1、管理磁盤sdb,創建磁區2,將剩余大小全部分配給磁區2,并partprobe重繪磁區
- 2、新磁盤要使用就得掛載,掛載就需要掛載點,要掛載的前提就是確定檔案系統型別,也就是格式化
- 3、下載壓縮包,下載好后將壓縮包拖入Xshell中,在哪個目錄下執行的,壓縮包就在哪個目錄下
- 4、(可復制),切換進入extundelete目錄中將configure進行編譯安裝
- 5、創建軟鏈接,在/sdb2中創建檔案寫入內容,并查詢inode號
- 6、模擬洗掉,并使用工具恢復內容,恢復之前需解掛載,恢復的是磁盤內的內容
- 四、恢復XFS型別的檔案
- 命令步驟:
- 詳細程序
- 1、虛擬機快照,重新添加磁盤,進行格式化,創建掛載點,磁盤掛載,進入掛載點,復制或創建一下目錄檔案用于實驗
- 2、檢查安裝xfsdump工具,一般系統默認安裝,若是沒有,使用rpm -qa | grep “xfsdump”,再使用yum -y install 進行安裝
- 3、接下來,進行備份,洗掉,恢復
- 五、日志檔案
- (一)日志的功能
- (二)日志檔案的分類
- 1、內核及系統日志
- 2、用戶日志
- 3、程式日志
- 4、主要日志檔案介紹
- 5、日志記錄的一般格式
- (三)常見的一些日志檔案
- 1、內核及公共訊息日志
- 2、計劃任務日志
- 3、系統引導日志
- 4、郵件系統日志
- 5、用戶登錄日志
- 5、分析工具
- 六、日志管理策略
一、inode與block
(一)概述
1、檔案資料
包括元資訊與實際資料,檔案存盤在硬碟上,硬碟最小存盤單位是“扇區”,每個扇區存盤512位元組,檔案資料包括實際資料與元資訊(類似檔案屬性),檔案資料存盤在“塊"中,存盤檔案元資訊(比如檔案的創建者、創建日期、檔案大小、檔案權限等)的區域就叫做 inode ,因此,一個檔案必須占用一個inode,并且至少占用一個block,inode不包含檔案名,檔案名是存放在目錄當中的,Linux系統中一切皆檔案,因此目錄也是一種檔案,
2、block (塊)
連續的八個扇區組成一個block(4K)
是檔案存取的最小單位
3、inode (索引節點)
中文譯名為"索引節點",也叫 i節點,用于存盤檔案元資訊
每個inode都有一個號碼,作業系統用inode號碼來識別不同的檔案,
Linux系統內部不使用檔案名,而使用inode號碼來識別檔案,
對于系統來說,檔案名只是inode號碼便于識別的別稱,檔案名和inode號碼是一 一 對應關系,每個inode號碼對應一個檔案名,
4、Linux系統檔案三個主要的時間屬性
ctime(change time) #最后一次改變檔案或目錄(屬性)的時間
atime(access time) #最后一次訪問檔案或目錄的時間
mtime(modify time) #最后一次修改檔案或目錄(內容)的時間
通過inode 洗掉檔案命令:
find ./ -inum 52305140 -exec rm -i {} \;
find ./ -inum 50464299 -delete
5、總結
當用戶在Linux系統中試圖訪問一個檔案時,系統會先根據檔案名去查找它對應的inode號碼;通過inode號碼,獲取inode資訊;根據inode資訊,看該用戶是否具有訪問這個檔案的權限;如果有,就指向相對應的資料block,并讀取資料,
(二)inode 號碼
1、用戶通過檔案名打開檔案時,系統內部的程序
系統找到這個檔案名對應的inode號碼
通過inode號碼,獲取inode資訊
根據inode資訊,找到檔案資料所在的block,讀出資料
2、查看檔案名對應的 inode 號碼有兩種方式:
ls -i 檔案名
stat 檔案名


(三)inode的大小
inode也會消耗硬碟空間,所以格式化的時候,作業系統自動將硬碟分成兩個區域,一個是資料區,存放檔案資料;另一個是inode區,存放inode所包含的資訊,每個inode的大小,一般是128位元組或256位元組,
通常情況下不需要關注單個inode的大小,而是需要重點關注inode總數,inode的總數在格式化時就給定了,執行 “df -i” 命令即可查看每個硬碟磁區對應的的inode總數和已經使用的inode數量,

由于inode號碼與檔案名分離,導致Linux系統具備以下幾種特有的現象:
1)檔案名包含特殊字符,可能無法正常洗掉,這時直接洗掉inode,能夠起到洗掉檔案的作用;
2)移動檔案或重命名檔案,只是改變檔案名,不影響inode號碼;
3)打開一個檔案以后,系統就以inode號碼來識別這個檔案,不再考慮檔案名,
4)檔案資料被修改保存后,會生成一個新的inode號碼,
(四)檔案存盤
1、硬碟磁區后結構

2、訪問檔案的簡單流程

二、inode節點耗盡故障處理
#使用fdisk創建磁區/dev/sdb1,磁區大小30M即可
fdisk /dev/sdb n→p→+30M→w
mkfs.ext4 /dev/sdb1 #對于centos 7系統,節點耗盡故障處理的檔案型別可以是ext3或ext4
mkdir /test #創建掛載點
mount /dev/sdb1 /test
df -i #查看inode號一共有多少個
#模擬inode節點耗盡故障
for ((i=1; i<=7680; i++)) ;do touch /test/file$i; done 或者 touch {1..7680}.txt #創建超過它限額的節點號
df -i
df -hT
#洗掉檔案恢復
rm -rf /test/*
df -i
1、添加一塊磁盤

2、管理磁盤

3、格式化為ext3

4、在根目錄下創建子目錄/data用于掛載

5、使用for回圈創建檔案,超出inode號無法創建




6、解除inode占用,即可創建檔案

三、EXT型別檔案恢復
命令步驟:
● 使用fdisk創建磁區/dev/sdb2,格式化ext3檔案系統
fdisk /dev/sdb
mkfs.ext3 /dev/sdb2
mkdir /sdb2
mount /dev/sdb2 /sdb2
yum -y install e2fsprogs-devel e2fsprogs-libs #安裝依賴包
cd /sdb2
拖入壓縮包
tar jxvf extundelete-0.2.4.tar.bz2 #進行解壓縮
cd extundelete-0.2.4/
./configure --prefix=/usr/local/extundelete && make && make install
ln -s /usr/local/extundelete/bin/* /usr/bin/
●模擬洗掉并執行恢復操作
cd /sdb1
echo a>a
echo a>b
echo a>c
echo a>d
ls
●查看檔案系統/dev/sdb2下存在哪些檔案,i 節點是從 2 開始的,2 代表該檔案系統最開始的目錄,
extundelete /dev/sdb1 --inode 2
rm -rf a b
cd ~
umount /sdb2
extundelete /dev/sdb2 --restore-all 恢復/dev/sdb2檔案系統下的所有內容
在當前目錄下會出現一個RECOVERED_FILES/目錄,里面保存了已經恢復的檔案
ls RECOVERED_FILES
詳細程序(接上述inode耗盡實驗的配置)
1、管理磁盤sdb,創建磁區2,將剩余大小全部分配給磁區2,并partprobe重繪磁區

2、新磁盤要使用就得掛載,掛載就需要掛載點,要掛載的前提就是確定檔案系統型別,也就是格式化



3、下載壓縮包,下載好后將壓縮包拖入Xshell中,在哪個目錄下執行的,壓縮包就在哪個目錄下


4、(可復制),切換進入extundelete目錄中將configure進行編譯安裝


5、創建軟鏈接,在/sdb2中創建檔案寫入內容,并查詢inode號



6、模擬洗掉,并使用工具恢復內容,恢復之前需解掛載,恢復的是磁盤內的內容



四、恢復XFS型別的檔案
CentOS 7 系統默認采用 xfs型別的檔案,xfs 型別的檔案可使用 xfsdump 與 xfsrestore 工具進行備份恢復,
●xfsdump 命令常用的選項:
-f:指定備份檔案目錄
-L:指定標簽 session label
-M:指定設備標簽 media label
-s:備份單個檔案,-s 后面不能直接跟路徑
●xfsdump使用限制:
1.只能備份已掛載的檔案系統
2.必須使用root的權限才能操作
3.只能備份XFS檔案系統
4.備份后的資料只能讓xfsrestore決議
5.不能備份兩個具有相同UUID的檔案系統(可用 blkid命令查看)
命令步驟:
使用fdisk創建磁區/dev/sdb1,格式化xfs檔案系統
fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs /dev/sdb1
mkdir /sdb1
mount /dev/sdb1 /sdb1
cd /sdb1
cp /etc/passwd ./
mkdir test
touch test/a
使用 xfsdump 命令備份整個磁區
yum install -y xfsdump
xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1
模擬資料丟失并使用 xfsrestore 命令恢復檔案
cd /sdb1
rm -rf ./*
xfsrestore -f /opt/dump_sdb1 /sdb1
詳細程序
1、虛擬機快照,重新添加磁盤,進行格式化,創建掛載點,磁盤掛載,進入掛載點,復制或創建一下目錄檔案用于實驗


2、檢查安裝xfsdump工具,一般系統默認安裝,若是沒有,使用rpm -qa | grep “xfsdump”,再使用yum -y install 進行安裝

3、接下來,進行備份,洗掉,恢復



五、日志檔案
(一)日志的功能
1、用于記錄系統、程式運行中發生的各種事件
2、通過閱讀日志,有助于診斷和解決系統故障
(二)日志檔案的分類
1、內核及系統日志
1)由系統服務 rsyslog 統一進行管理,日志格式基本相似
軟體包:rsyslog-7.4.7-16.el7.x86_64
主要程式:/sbin/rsyslogd
組態檔:/etc/rsyslog.conf
2)主組態檔 /etc/rsyslog.conf
Linux作業系統本身和大部分服務器程式的日志檔案都默認放在目錄 /var/log/ 下
也可以指定查詢某個特定日期或者時間點的系統日志
3)查詢系統內核日志組態檔:/etc/rsyslog.conf
vim /etc/rsyslog.conf #查看rsyslog.conf 組態檔
*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info #表示info等級及以上的所有等級的資訊都寫到對應的日志檔案里
mail.none #表示某事件的資訊不寫到日志檔案里(這里比如是郵件)
4)Linux系統內核日志訊息的優先級別(數字等級越小,優先級越高,訊息越重要)
| 級號 | 訊息 | 級別 | 說明 |
|---|---|---|---|
| 0 | EMERG | 緊急 | 會導致主機系統不可用的情況, |
| 1 | ALERT | 警告 | 必須馬上采取措施解決的問題 |
| 2 | CRIT | 嚴重 | 比較嚴重的情況 |
| 3 | ERR | 錯誤 運 | 行出現錯誤 |
| 4 | WARNING | 提醒 | 可能影響系統功能,需要提醒用戶的 |
| 5 | NOTICE | 注意 | 不會影響正常功能,但是需要注意的事件 |
| 6 | INFO | 資訊 | 一般資訊 |
| 7 | DEBUG | 除錯 | 程式或系統除錯資訊等 |
2、用戶日志
記錄系統用戶登錄及退出系統的相關資訊 vim /var/log/secure
3、程式日志
1)由各種應用程式獨立管理的日志檔案,記錄格式不統一
2)程式日志分析,由相應的應用程式獨立進行管理
?Web服務:Nar/log/httpd/
access_log //記錄客戶訪問事件
error_log //記錄錯誤事件
?代理服務:/var/log/squid/
access.log、cache.log
?分析工具
?文本查看、grep過濾檢索、Webmin管理套件中查看
?awk、sed等文本過濾、格式化編輯工具
?Webalizer、Awstats等專用日志分析工具
4、主要日志檔案介紹
| 內核及公共訊息日志 ./ | var/log/messages |
| 計劃任務日志 | ./var/log/cron |
| 系統引導日志 | ./var/log/dmesg |
| 郵件系統日志 | . /var/log/maillog |
| 用戶登錄日志 | ./var/log/lastlog ./var/log/secure ./var/log/wtmp ./var/run/btmp |
5、日志記錄的一般格式

(三)常見的一些日志檔案
1、內核及公共訊息日志
/var/log/messages:記錄Linux內核訊息及各種應用程式的公共日志資訊,包括啟動、IO錯誤、網路錯誤、程式故障等,對于未使用獨立日志檔案的應用程式或服務,一般都可以從該日志檔案中獲得相關的事件記錄資訊,
2、計劃任務日志
/var/log/cron:記錄 crond 計劃任務產生的事件資訊
3、系統引導日志
/var/log/dmesg:記錄Linux系統在引導程序中的各種事件資訊
4、郵件系統日志
/var/log/maillog:記錄進入或發出系統的電子郵件活動,
5、用戶登錄日志
/var/log/secure:記錄用戶認證相關的安全事件資訊,
/var/log/lastlog:記錄每個用戶最近的登錄事件,二進制格式
/var/log/wtmp:記錄每個用戶登錄、注銷及系統啟動和停機事件,二進制格式
/var/run/btmp:記錄失敗的、錯誤的登錄嘗試及驗證事件,二進制格式
5、分析工具
users、 who、w 、last、lastb
last命令用于查詢成功登錄到系統的用戶記錄
lastb命令用于查詢登錄失敗的用戶記錄

六、日志管理策略
1、及時作好備份和歸檔
2、延長日志保存期限
3、控制日志訪問權限
日志中可能會包含各類敏感資訊,如賬戶、口令等
4、集中管理日志
將服務器的日志檔案發到統一的日志檔案服務器
便于日志資訊的統一收集、整理和分析
杜絕日志資訊的意外丟失、惡意篡改或洗掉
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/280585.html
標籤:其他
