深入理解Linux文件系統
在處理 Linux 系統出現的各種故障時,故障的症狀是最易發現的,而導致這一故障的原 因纔是最終排除故障的關鍵。熟悉Linux 系統中常見的日誌文件,瞭解一般故障的分析與解 決辦法,將有助於管理員快速定位故障點、“對症下藥”、並及時解決各種系統問題。另外, Linux 系統中通過分區、格式化來創建文件系統,而文件系統的運行又與 block 和 inode有關。
知識結構:
inode與block
硬鏈接與軟鏈接
日誌文件的分類
用戶日誌與程序日誌
(一)inode與block
inode和block概述
文件數據包括元信息與實際數據
文件存儲在硬盤上,硬盤最小存儲單位是“扇區”,每個扇區存儲512字節
block(塊)
連續的八個扇區組成一個block
是文件存取的最小單位
Inode(索引節點)
中文譯名爲“索引節點”,也叫i節點
用於存儲文件元信息
一個文件必須佔用一個 inode,但至少佔用一個block
inode包含文件的雲信息
文件的字節數
文件擁有者的User ID
文件的Group ID
文件的讀,寫,執行權限
文件的時間戳
...
用stat命令可以查看某個文件的inode信息
[root@localhost etc]# cd /opt [root@localhost opt]# touch 11.txt [root@localhost opt]# ls 11.txt rh [root@localhost opt]# stat 11.txt 查看文件的inode信息
Linux系統文件三個主要的時間屬性
ctime:最後一次改變文件或目錄(屬性)的時間
atime:最後一次訪問文件或目錄的時間
mtime:最後一次修改文件或目錄(內容)的時間
目錄文件的結構
目錄也是一種文件
目錄文件的結構
每個inode都有一個號碼,操作系統用inode號碼來識別不同的文件
Linux系統內部不使用文件名,而使用inode號碼來識別文件
對於用戶來說,文件名知識inode號碼便於識別的別稱
inode的號碼
用戶通過文件名打開文件是,系統內部的過程
1,系統找到這個文件名對應的inode號碼
2,通過inode號碼,獲取inode信息
3,根據inode信息,找到文件數據所在的block,讀出數據
查看inode號碼的方法
ls -i命令:查看文件名對應的inode號碼
stat命令:查看文件inode信息中的inode號碼
[root@localhost opt]# ls -i 11.txt 查看inode號碼 或者 [root@localhost opt]# stat 11.txt
inode的大小
inode也會消耗硬盤空間,每個inode的大小,一般是128字節或256字節
格式化文件系統時確定inode的總數
使用df -i命令可以查看每個硬盤分區的inode總數和已經使用的數量
[root@localhost opt]# df -i 查看磁盤分區中的inode總數和已經使用的數量
inode的特殊作用
由於inode號碼與文件名分離,導致一些Linux/Unix系統具有以下的現象
當文件名包含特殊字符,可能無法正常刪除文件,直接刪除inode,也可以刪除文件
[root@localhost opt]# ls -i 11.txt 查看文件inode號碼 34962592 11.txt [root@localhost opt]# find ./* -inum 34962592 -delete 根據inode號碼進行刪除文件
移動或重命名文件時,只改變文件名,不影響inode號碼
打開一個文件後,系統通過inode號碼來識別該文件,不再考慮文件名
(二)硬鏈接與軟鏈接
爲文件或目錄建立鏈接文件
文件類型
硬鏈接:ln 源文件 目標位置
一般情況下,文件名和 inode 號碼是一一對應關係,每個 inode 號碼對應一個文件名。 但是 Linux 系統允許多個文件名指向同一個 inode 號碼。這意味着,可以用不同的文件名訪 問同樣的內容
軟鏈接:ln -s 源文件或目錄.. 鏈接文件或目標位置
軟鏈接就是再創建一個獨立的文件,而這個文件會讓數據的讀取指向它連接的那個文件 的文件名。
(三)日誌文件的分類
日誌文件的功能
用於記錄系統,程序運行中發生的各種事件
通過閱讀日誌,有助於診斷和解決系統故障
日誌文件的分類
內核及系統日誌:有系統服務syslog統一進行管理,日誌格式基本相似
用戶日誌:記錄系統用戶登錄及退出系統的相關信息
程序日誌:由各種應用程序獨立管理的日誌文件,記錄格式不統一
日誌保存位置
默認位於:/var/log目錄下
主要日誌文件介紹
內核及系統日誌
由系統服務rsyslogd統一管理
軟件包:rsyslog-7.4.7-16.el7.x86_64
主要程序:/sbin/rsyslogd
配置文件:/etc/rsyslog.conf
日誌消息的級別
日誌記錄的一般格式
(四)用戶日誌與程序日誌
用戶日誌
保存了用戶登錄,退出系統等相關信息
最近的用戶登錄時間:/var/log/lastlog
用戶登錄,註銷及系統開關機事件:/var/log/wtmp
當前登錄的每個用戶的詳細信息:/var/log/utmp
與用戶驗證相關的安全性事件:/var/log/secure
分析工具
users,who,w,last,lastb
程序日誌分析
由相應的應用程序獨立進行管理
web服務:/var/log/httpd/(access_log,error_log)
代理服務:/var/log/squid(access.log,cache.log)
FTP服務:/var/log/xferlog
分析工具
文本查看,grep過濾檢索,webmin管理套件中查看
awk,sed等文本過濾,格式化編輯工具
webalizer,awstats等專用日誌分析工具
1,在Linux系統中安裝一個httpd服務,安裝完成之後開啓服務並關閉防火牆,便於其他主機連接
2,用另一臺主機訪問此臺主機的ip地址(192.168.109.133)訪問成功
3,切換目錄到/var/log/httpd中我們可以看到access_log日誌文件,用cat查看內容正是訪問的主機的ip的地址信息
日誌管理策略
及時做好備份和歸檔
延長日誌保存期限
控制日誌訪問權限
日誌中可能會包含各類敏感信息,如賬戶,口令等
集中管理日誌
將服務器的日誌文件發到統一的日誌文件服務器
便於日誌信息的統一收集,整理和分析
杜絕日誌信息的意外丟失,惡意篡改或刪除
感謝您的閱讀
謝謝!!!