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

Linux檔案系統與日誌檔案

一、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)