1. 程式人生 > 其它 >linux檔案系統和日誌分析

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.集中管理日誌
將伺服器的日誌檔案發到統一-的日誌檔案伺服器
便於日誌資訊的統- -收集、 整理和分析
杜絕日誌資訊的意外丟失、惡意篡改或刪除