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

檔案系統和日誌檔案

目錄

一、inode與block

1、概論

1.1檔案資料包括元資訊(類似檔案屬性)與實際資料

• 檔案資料儲存在“塊”中
• 儲存檔案元資訊( 比如檔案的建立者、建立日期、檔案大小、檔案許可權等)的區域就叫做inode
• 一個檔案必須佔用一個inode, 並且至少佔用一個block

1.2 檔案儲存在硬碟上,硬碟最小儲存單位是“扇區”(sector),每個扇區儲存512位元組

1.3 block(塊)

• 連續的八個扇區組成一個block,一個塊大小為4k
• 是檔案存取的最小單位
• 作業系統讀取硬碟的時候,是一次性連續讀取多個扇區,即一個塊一個塊的讀取

1.4 inode(索引節點)

• 中文譯名為“索引節點”,也叫 i節點
• 用於儲存檔案元資訊
• inode不包含檔名。檔名是存放在目錄當中的

Linux 系統中一切皆檔案,因此目錄也是一種檔案
每個inode都有一個號碼,作業系統用inode號碼來識別不同的檔案。Linux 系統內部不使用檔名,而使用inode號碼來識別檔案。對於系統來說,檔名只是inode號碼便於識別的別稱,檔名和inode號碼是一 一對應關係, 每個inode號碼對應一個檔名
當用戶在Linux系統中試圖訪問一個檔案時,系統會先根據檔名去查詢它對應的inode號碼;通過inode號碼, 獲取inode資訊;根據inode資訊,看該使用者是否具有訪問這個檔案的許可權; 如果有,就指向相對應的資料block,並讀取數 據

注:一個檔案必須佔用一個inode,但至少也佔用一個block

二.inode的內容

① inode包含檔案的元資訊

• 檔案的位元組數
• 檔案擁有者的User ID
• 檔案的Group ID
• 檔案的讀、寫、執行許可權
• 檔案的時間戳
注:不包含檔名

② 檢視某個檔案的inode資訊

stat aa.txt
③ Linux系統檔案三個主要的時間屬性
ctime(change time)
◆最後一次改變檔案或目錄(屬性)的時間
atime(access time)
◆最後一次訪問檔案或目錄的時間
mtime(modify time)
◆最後一次修改檔案或目錄(內容)的時間

④ 目錄檔案的結構

• 目錄也是一種檔案
• 目錄檔案的結構

⑤ 每個inode都有一個號碼,作業系統用inode號碼來識別不同的檔案
⑥ Linux系統內部不使用檔名,而使用inode號碼來識別檔案
⑦ 對於使用者,檔名只是inode號碼便於識別的別稱

三.inode的號碼

① 使用者通過檔名開啟檔案時,系統內部的過程

  1. 系統找到這個檔名對應的inode號碼
  2. 通過inode號碼, 獲取inode資訊
  3. 根據inode資訊,找到檔案資料所在的block,讀出資料
    硬碟分割槽後的結構

訪問檔案的簡單流程

② 檢視inode號碼的方法

ls -i (檢視檔名對應的inode號碼)檔名
stat(檢視檔案inode資訊中的inode號碼)檔名

四.inode的大小

① inode也會消耗硬碟空間

• 每個inode的大小
• 一般是128位元組或256位元組

② 格式化檔案系統時確定inode的總數

③ 檢視每個硬碟分割槽的inode總數和已經使用的數量

df -i
inode也會消耗硬碟空間,所以格式化的時候,作業系統自動將硬碟分成兩個區域。一個是資料區,存放檔案資料;另一個是inode 區,存放inode 所包含的資訊。每個inode 的大小,一般是128位元組或256位元組
通常情況下不需要關注單個inode的大小,而是需要重點關注inode 總數。inode 的總數在格式化時就給定了,執行"df-i"命令即可檢視每個硬碟分割槽對應的的inode總數和已經使用的inode數量
由於inode 號碼與檔名分離,導致Linux系統具備以下幾種特有的現象:
1.檔名包含特殊字元,可能無法正常刪除。這時直接刪除inode,能夠起到刪除檔案的作用
2.移動檔案或重新命名檔案,只是改變檔名,不影響inode 號碼
3.開啟一個檔案以後,系統就以inode. 號碼來識別這個檔案,不再考慮檔名
4.檔案資料被修改儲存後,會生成一個新的inode 號碼
find ./ -inum 52305140 -exec rm -i {} \ ;
find ./ -inum 50464299 -delete
find ./ -inum (inode) | xargs rm -rf

五.連結檔案

① 為檔案或目錄建立連結檔案

② 連結檔案分類

標記文字
In 原始檔 目標位置
軟連結
In 【-s】原始檔或目錄…連結檔案或目標位置

六、inode節點耗盡故障處理

1、進行分割槽 大小為30m

2、格式化成ext4格式

3、進行掛載

掛載完之後,opt本身就有一個檔案,佔用1個inode號,現在已用11,後面刪除後10,就是因為這個檔案

4、模擬故障

5、檢視inode號和佔用空間大小情況

6、恢復方式:刪除無用檔案,以恢復節點數

七、EXT檔案誤刪除處理辦法

1、匯入extundelete軟體包

 extundelete 是一個開源的 Linux 資料恢復工具,支援 ext3、ext4 檔案系統(ext4只能在CentOS6版本恢復)


2、安裝環境依賴包

3、安裝extundelete軟體

4、掛載目錄內建立檔案,並賦予內容,然後檢視inode號

5、刪除剛剛建立的檔案,並解掛載,用來模擬故障

6、進行恢復操作

八、xfs型別檔案備份和恢復

1、xfs型別檔案備份和恢復
CentOS 7 系統預設採用 xfs型別的檔案,xfs 型別的檔案 可使用 xfsdump 與 xfsrestore 工具進行備份恢復。
xfsdump的備份級別有兩種

0表示完全備份(預設為0)
1-9表示增量備份

2、故障模擬
①、新建分割槽

②、格式化分割槽,並掛載,複製實驗內容到掛載目錄,建立目錄和子檔案

③、安裝xfsdump軟體

④、備份整個分割槽

⑤、模擬故障,並進行恢復

九.日誌檔案

① 日誌的功能

• 用於記錄系統、程式執行中發生的各種事件
• 通過閱讀日誌,有助於診斷和解決系統故障

② 日誌檔案的分類

核心及系統日誌
◆由系統服務rsyslog統一進行管理 ,日誌格式基本相似
◆主配置檔案/etc/rsyslog.conf
使用者日誌.
◆記錄系統使用者登入及退出系統的相關資訊
程式日誌
◆由各種應用程式獨立管理的日誌檔案,記錄格式不統一
(由開發人員定義)

③ 日誌儲存位置

預設位於: /var/log目錄下

④ 主要日誌檔案介紹

核心及公共訊息日誌
/var/log/messages
記錄Linux核心訊息及各種應用程式的公共日誌資訊,包括啟動、Io錯誤、網路錯誤、程式故障等
對於未使用獨立日誌檔案的應用程式或服務,一般都可以從該日誌檔案中獲得相關的事件記錄資訊
計劃任務日誌
/var/log/cron
記錄crond計劃任務產生的事件資訊
系統引導日誌
/var/log/dmesg
記錄Linux系統在引導過程中的各種事件資訊
郵件系統日誌
/var/log/maillog
記錄進入或發出系統的電子郵件活動
使用者登入日誌
/var /log/lastlog
記錄每個使用者最近的登入事件,二進位制格式
/var/log/secure
記錄使用者認證相關的安全事件資訊
/var/log/wtmp
記錄每個使用者登入、登出及系統啟動和停機事件,二進位制格式
/var/run/btmp
記錄失敗的、錯誤的登入嘗試及驗證事件,二進位制格式

vim /etc/rsyslog.conf

檢視rsyslog.conf配置檔案

*.info;mail.none; authpriv.none; cron.none
/var/ log/messages
*.info

表示info等級及以上的所有等級的資訊都寫到對應的日誌檔案裡

mail.none

表示某事件的資訊不寫到日誌檔案裡(這裡比如是郵件)

十.核心及系統日誌

核心及系統日誌由系統服務rsyslog 統一管理,主配置檔案為/etc/rsyslog.conf
Linux作業系統本身和大部分伺服器程式的日誌檔案都預設放在目錄/var/log/下

① 日誌的級別

注:數字等級越小,優先順序越高,訊息越重要

② 日誌記錄的一般格式

時間標籤: 訊息發出的日期和時間
主機名: 生成訊息的計算機的名稱
子系統名稱: 發出訊息的應用程式的名稱
訊息: 訊息的具體內容

十一.使用者日誌分析

① 儲存了使用者登入、退出系統等相關資訊

• /varlog/lastlog:最近的使用者登入事件
• /var/log/wtmp:使用者登入、登出及系統開、關機事件
• /var/run/utmp:當前登入的每個使用者的詳細資訊
• /var/log/secure:與使用者驗證相關的安全性事件

② 分析工具

• users、who、W、last、 lastb
• last命令用於查詢成功登入到系統的使用者記錄
• lastb命令用於查詢登入失敗的使用者記錄

十二.程式日誌分析

由相應的應用程式獨立進行管理
Web服務: /var/log/httpd/
◆access_ log
//記錄客戶訪問事件
◆error_ log
//記錄錯誤事件
代理服務: Ivar/log/squid/
◆access.log、cache.log

分析工具
文字檢視、grep過濾檢索、Webmin管理套件中檢視
awk、sed等文字過濾、格式化編輯工具
Webalizer、Awstats等專用日誌分析工具

十三.日誌管理策略

① 及時作好備份和歸檔
② 延長日誌儲存期限
③ 控制日誌訪問許可權
• 日誌中可能會包含各類敏感資訊,如賬戶、口令等

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

總結:
1.block與inode
2.硬連結與軟連結
3.恢復誤刪除的檔案
4.Linux主要包含的日誌檔案
5.Linux系統的日誌訊息級別
6.Linux系統中使用者日誌的查詢命令
(who、W、users、 last、 lastb)