linux檔案系統和日誌分析
一、Linux檔案系統
1.inode與block
1.概述:
(1)檔案資料包括元資訊與實際資訊
(2)檔案儲存在硬碟上,硬碟最小儲存單位是“扇區”,每個扇區儲存512位元組
(3)block:塊
*.連續的八個扇區組成一個block(4k)
*.是檔案存取的最小單位
(4)inode:(索引節點)
*.中文譯名為索引節點,也叫 i 節點
*.用於儲存檔案元資訊
2.inode和biock的關係
元資訊 → inode
資料 → block
*.檔案資料包括實際資料與元資訊(類似檔案的屬性)檔案資料儲存在 塊 中,儲存檔案源資訊(比如檔案的建立者、建立日期、檔案大小、檔案許可權等)的區域就叫做inode、因此目標也是一種檔案,結構乳下圖所示:
檔名1 | inode號碼1 |
檔名2 | inode號碼2 |
檔名3 | inode號碼3 |
........ | ......... |
*.每個inode都有一個號碼,作業系統用inode號碼來識別不同的檔案,Linux系統內部不使用檔名,而使用inode號碼來識別檔案,對於系統來說,檔名是inode號碼便於識別的別稱,檔名和inode號碼是 一 一 對應關係,每個inode號碼對應一個檔名
檢視檔名對應inode號碼有兩種方式
1 | 檢視檔名對應的inode號碼 |
ls -i | |
2 | 檢視檔案inode資訊中的inode號碼 |
stat 檔名 |
3.inode包含檔案的元資訊
* 檔案的位元組數
* 檔案擁有者的User ID
* 檔案的Group ID
* 檔案的讀、寫、執行許可權
* 檔案的時間戳等
4.Linux系統檔案三個主要的時間屬性
* ctime(change time) 最後一次改變檔案或目錄屬性的時間
* atime (access time) 最後一次訪問檔案或目錄的時間
* mtime (modify time) 最後一次修改檔案或目錄內容的時間
5.使用者通過檔名開啟檔案時,系統內部的過程
* 系統找到這個檔名對應的inode號碼
* 通過inode號碼,獲取inode資訊
* 根據inode資訊,找到檔案資料所在的block,讀出資料
6.硬碟分割槽後的結構
檔名 → 目錄項 目錄塊
元資訊 → inode inode 表區塊
資料 → block biock 資料區
7.訪問檔案的簡單流程
是 → 指定對應的資料biock
使用者訪問檔案----------通過檔名→系統查詢檔案對應的inode→判斷使用者是否具備訪問許可權------|
否 → 返回permission
denied
8.inode的大小
* inode也會消耗硬碟空間:每個inode號的大小一般是128位元組或256位元組
* 格式化檔案系統時確定inode的總數
* 使用df -i命令可以常看每個硬碟分割槽的inode總數和已經使用的數量
9.inode特點
由於inode 號碼與檔名分離,導致Linux系統具備一下幾種特有的現象
* 檔名包含特殊字元,可能無法正常刪除,直接刪除inode,能夠起到刪除檔案的作用
1 | 刪除inode號的方法 |
2 | 【root@cocalhost~]#find ./ -inum 68201002 -exec rm -i {}\; |
3 | 【root@cocalhost~】#find./ inum 68201002 -delete |
* 移動檔案或重新命名檔案,只是改變檔名,不影響inode號(這裡指的是非掛載磁碟)
* 開啟一個檔案以後,系統就以inode號碼來識別這個檔案,不在考慮檔名
* 檔案資料被修改儲存後,會生成一個新的inode號碼
10.硬連線和軟體
* 為檔案或目錄建立連結檔案
* 連結檔案的分類和對比
操作和範圍 | 軟連結 | 硬連結 |
刪除原始檔案後 | 失效 | 仍然可用 |
使用範圍 | 適用於檔案或目錄 | 只可用於檔案 |
儲存位置 | 與原始檔案可以位於不同檔案系統中 | 必須與原始檔案在同一個檔案系統(如一個Linux分割槽)內 |
* 軟連結的格式
1 | 硬連結 |
ln 原始檔 目標位置 | |
2 | 軟連結 |
ls [-s] 原始檔或者目錄... 連結檔案或者目標位置 |
11.恢復誤刪的檔案(EXT型別)
*1 大概步驟
(1)編譯安裝extundelete軟體包
(2)安裝依賴包
* e2fsprogs-libs-1.41.12- 18. el6.x86_ 64.rpm
* e2fsprogs-devel-1 41.12-18.el6.x86_ 64.rpm
(3)配置、編譯及安裝、模擬刪除並執行恢復操作
*extundelete-0.2.4.tar.bz2
*2 詳細步驟如下新增新磁碟,具體步驟可以參考本文第三段:磁碟管理的檢測並確認新硬碟
缺新磁碟新增成功
對磁碟進行分割槽,更改型別
對新建的分割槽進行格式化,型別為ext3
掛載並檢視
安裝e2fsprogs-devel 和e2fsprogs-libs程式
從網上下載安裝e2fsprogs-devel 和e2fsprogs-libs程式
將extundelete-0.2.4.tar拖入Linux中
使用tar命令進行解壓
編譯並安裝
將安裝程式的bin目錄軟連線到環境變數的目錄下
建立檔案並刪除進行測試
12.xfs型別檔案備份和恢復
1.Centos 7系統預設採用xfs型別的檔案,xfs型別的檔案可使用xfsdump 與xfsrestore 工具進行備份恢復。
xfsdump的備份級別有兩種:0表示完全備份; 1-9表示增量備份。xfsdump的備份級別預設為0。
2..xfsdump的命令格式
xfsdump -f 備份存放位置 要備份的路徑或裝置檔案
3.xfsdump命令常用的選項
-f | 指定備份檔案目錄 |
-L | 指定標籤session label |
-M | 指定裝置標籤media label |
-S | 備份單個檔案,-s後面不能直接跟路徑 |
4.xfsdump使用限制
只能備份已掛載的檔案系統 |
必須使用root的許可權才能操作 |
只能備份XFS檔案系統 |
備份後的資料只能讓xfsrestore解析 |
不能備份兩個具有相同UUID的檔案系統(可用blkid命令檢視) |
5.演示備份和恢復的具體步驟
將前面使用的分割槽sdb1進行解掛並格式化為xfs格式後重新掛載,也可以重新建立然後型別修改為xfs型別,具體步驟參考上一個實驗。
在掛載目錄建立檔案用於後面測試用
檢視程式是否安裝,指定備份目錄和需要備份的磁碟
建立檔案並且刪除進行測試
二、日誌檔案
日誌儲存位置預設位於:/var/log目錄下
1.日誌的功能
用於記錄系統、程式執行中發生的各種事件 |
通過閱讀日誌,有助於診斷和解決系統故障 |
2.日誌檔案的分類
1.核心及系統日誌
由系統服務rsyslog統一進行管理,日誌格式基本相似 |
主配置檔案/etc/rsyslog.conf |
2.使用者日誌
記錄系統使用者登入及退出系統的相關資訊 |
3..程式日誌
由各種應用程式獨立管理的日誌檔案,記錄格式不統一 |
3.主要日誌檔案分類
1.核心及公共訊息日誌:
/var/log/messages: 記錄Linux核心訊息及各種應用程式的公共日誌資訊,包括啟動、I0錯誤、網路錯誤、程式故障等。 |
對於未使用獨立日誌檔案的應用程式或服務,一般都可以從該日誌檔案中獲得相關的事件記錄資訊。 |
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: 記錄失敗的、錯誤的登入嘗試及驗證事件。二進位制格式 |
6.日誌配置檔案和日誌訊息等級
vim /etc/rsyslog.conf | #檢視rsyslog.conf配置檔案 |
* . info;mail.none;authpriv.none;cron.none /var/log/messages | |
*.info | #表示info等級及以上的所有等級的資訊都寫到對應的日誌檔案裡 |
mail.none | #表示某事件的資訊不寫到日誌檔案裡(這裡比如是郵件) |
Linux系統核心日誌訊息的優先級別(數字等級越小,優先順序越高,訊息越重要):
級別 | 訊息 | 級別 | 具體描述 |
0 | EMERG | 緊急 | 會導致主機系統不可用的情況 |
1 | ALERT | 警告 | 必須馬上採取措施解決的問題 |
2 | CRIT | 嚴重 | 比較嚴重的情況 |
3 | ERR | 錯誤 | 執行出現錯誤 |
4 | WARNING | 提醒 | 可能影響系統功能,需要提醒使用者的重要事件 |
5 | NOTICE | 注意 | 不會影響正常功能,但是需要注意的事件 |
6 | INFO | 資訊 | 一般資訊 |
7 | DEBUG | 除錯 | 程式或系統除錯資訊等 |
7..日誌記錄的一般格式
8.分析工具
users、who、 W、last、 lastb |
last命令用於查詢成功登入到系統的使用者記錄 |
lastb命令用於查詢登入失敗的使用者記錄
9..程式日誌分析:由相應的應用程式獨立進行管理
access_log ——記錄客戶訪問事件 |
error_log ——記錄錯誤事件 |
10.代理服務:/var/log/squid/
access.log、cache.log |
分析工具 |
文字檢視、grep過來檢索、Webmin管理套件中檢視 |
awk、sed等文字過濾、格式化編輯工具 |
Webalizer、Awstats等專用日誌分析工具 |
11.日誌管理策略
及時做好備份和歸檔 |
延長日誌儲存期限 |
控制日誌訪問許可權 |
日誌中可能會包含各類敏感資訊,如賬戶和口令等 |
*1.集中管理日誌 |
將伺服器的日誌檔案發到統一-的日誌檔案伺服器 |
便於日誌資訊的統- -收集、 整理和分析 |
杜絕日誌資訊的意外丟失、惡意篡改或刪除 |