Linux內核-proc文件系統

作者簡介:一位在簡歷上沒有標注精通的運維工程師。請點擊上方的藍色《運維小路》關注我,下面的思維導圖展示了計劃更新的內容和當前進度(不定期更新)。

Linux內核-proc文件系統我們的linux進階部分至今已涵蓋:硬件,日常運維,基礎軟件,日志,高級命令,防火墻,Shell編程,以及本章即將介紹的內核相關內容和最后一章關于Linux系統的討論。

讓我們深入了解和熟悉Linux內核的基本信息。我們將從以下幾個方面來探討Linux內核:

Linux內核-什么是內核

Linux內核-內核模塊和參數

Linux內核-proc文件系統(本章節)

Linux內核-sys文件系統

Linux內核-tmpfs文件系統

在上一節中,我們修改了內核參數,并且在Linux入門-目錄介紹時也提到過/proc是一個虛擬目錄。今天我們將詳細介紹這個目錄。

在Linux系統中,“/proc”目錄是一個虛擬文件系統,它提供了關于系統運行狀態和進程信息的動態視圖。以下是對“/proc”目錄的介紹:

一、主要特點

動態性:”/proc”目錄中的內容不是存儲在磁盤上的靜態文件,而是由內核在運行時動態生成的。這意味著當系統狀態發生變化時,“/proc”中的信息也會隨之更新。例如,當一個進程啟動或結束時,“/proc”中關于進程的信息會立即反映這種變化。 虛擬性:它并不占用實際的磁盤空間,而是通過內核的機制來呈現系統的各種信息。用戶和程序可以通過讀取“/proc”中的文件來獲取系統的狀態信息,就像讀取普通文件一樣,但實際上這些文件并不是真正的磁盤文件。

Linux內核-proc文件系統二、目錄結構及內容

關于系統信息的文件: 文件“/proc/cpuinfo”:包含有關系統CPU的詳細信息,如處理器型號、頻率、緩存大小等。 文件“/proc/meminfo”:提供系統內存使用情況的信息,包括總內存、可用內存、已用內存等。 文件“/proc/version”:顯示內核版本信息。 文件“/proc/mounts”:顯示當前系統的掛載信息,尤其當作為NFS客戶端時,如果服務端掛了,可以通過它快速定位。 文件“/proc/modules”:顯示當前加載的內核模塊,等于lsmod顯示的模塊內容。 目錄“/proc/sys”:這個目錄下的文件可以用來調整內核參數,影響系統的行為和性能。其實就是上一節提到的內核參數目錄。

Linux內核-proc文件系統當然,這個目錄下還有很多內容,包括內存、網絡、磁盤等。我們平時使用的top等命令很多數據其實就是來源于/proc。關于進程的信息,除了一些固定的目錄和文件,里面還有很多以數字命名的目錄,每個目錄都代表了一個進程,每個進程也對應一個pid目錄名稱。 “/proc/[pid]/cmdline”:顯示啟動該進程的命令行參數。 “/proc/[pid]/environ”:列出進程的環境變量。 “/proc/[pid]/status”:包含進程的狀態信息,如進程的所有者、內存使用情況、進程狀態等。 “/proc/[pid]”:每個正在運行的進程在“/proc”下都有一個對應的以進程ID(PID)命名的目錄。例如,“/proc/1234”代表PID為1234的進程的信息目錄。 “/proc/[pid]/fd”:代表該進程打開的文件。

Linux內核-proc文件系統可以看到mysql進程的目錄,可以看到它打開的日志文件、數據庫文件等,和前面講的lsof命令打開文件有異曲同工之妙。這里還有很多顯示為deleted的文件。我們在講Linux高級命令-lsof命令時提到過,如果文件被刪除,這個文件如果正在被其他程序打開,文件是不會真正刪除的,從而導致刪除文件未釋放空間?;谶@種情況,我們設計了兩個課題:

Linux內核-proc文件系統 代碼語言:JavaScript 代碼運行次數:0

運行 復制 “`javascript #恢復被刪除的文件 cp 3 /tmp/cloud-init.log “`

代碼語言:javascript 代碼運行次數:0

運行 復制 “`javascript #不重啟服務釋放被刪除的文件 > 3 “`

總結:

  1. /proc是運行在內存中的文件系統,里面的數據重啟后會丟失。
  2. /proc文件系統沒有inode,因此無法通過mkdir、vi等命令進行操作,可以通過重定向方式進行修改。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享