1. 程式人生 > >linux 中/proc 詳解

linux 中/proc 詳解

proc 檔案系統
 
在Linux中有額外的機制可以為核心和核心模組將資訊傳送給程序-- /proc 檔案系統。最初設計的目的是允許更方便的對程序資訊進行訪問(因此得名),現在它被每一個有有趣的東西報告的核心使用,例如/proc/modules 有模組的列表/proc/meminfo 有記憶體使用的統計表。
 
  使用proc 檔案系統的方法和使用裝置驅動程式非常相似--建立一個/proc 檔案需要的所有資訊的結構,包括任何處理函式的指標(在我們的例子中只有一個,當某人試圖從/proc 檔案讀時呼叫的那一個)。然後,init_module 在核心中登記該結構而cleanup_module 登出它。
 
  我們使用proc_register_dynamic(這是在2.0 版中的情況,在2.2 版中如果我們將節點設定為0系統將自動為我們做到) 的原因是我們不想預先決定我們的檔案的節點數字,而是為防止衝突而由核心決定它。通常的檔案系統存在於磁碟上而不是記憶體中(/proc 在記憶體中),在這中情況下,節點數是是指向檔案的索引節點所在的磁碟位置的指標。節點包含檔案的資訊(例如檔案的存取許可權)和指向磁碟位置或檔案資料可以被找到的幾個位置的指標。
 
  因為當檔案被開啟或關閉的時候不能得到呼叫,所以在這個模組中沒有地方放置MOD_INC_USE_COUNT 和MOD_DEC_USE_COUNT,並且,如果檔案被開啟隨後模組被移除,我們沒有辦法避免後果。在下一章我們會看到一個艱難的但更靈活的可以處理/proc檔案的實現方式,它也可以讓我們防止那個問題。
 
http://www.2cto.com/os/201202/119552.html
 
Linux 核心提供了一種通過/proc 檔案系統,在執行時訪問核心內部資料結構、改變核心設定的機制。儘管在各種硬體平臺上的Linux 系統的/proc 檔案系統的基本概念都是相同的,但本文只討論基於intel x86 架構的Linux /proc 檔案系統。
 
_________________ _________________ _________________
 
/proc --- 一個虛擬檔案系統
 
/proc 檔案系統是一種核心和核心模組用來向程序(process) 傳送資訊的機制(所以叫做/proc)。這個偽檔案系統讓你可以和核心內部資料結構進行互動,獲取 有關程序的有用資訊,在執行中(on the fly) 改變設定(通過改變核心引數)。 與其他檔案系統不同,/proc 存在於記憶體之中而不是硬碟上。如果你察看檔案/proc/mounts (和mount 命令一樣列出所有已經載入的檔案系統),你會看到其中 一行是這樣的:
 
grep proc /proc/mounts
/proc /proc proc rw 0 0
 
/proc 由核心控制,沒有承載/proc 的裝置。因為/proc 主要存放由核心控制的狀態資訊,所以大部分這些資訊的邏輯位置位於核心控制的記憶體。對/proc 進行一次'ls -l' 可以看到大部分檔案都是0 位元組大的;不過察看這些檔案的時候,確實可以看到一些資訊。這怎麼可能?這是因為/proc 檔案系統和其他常規的檔案系統一樣把自己註冊到虛擬檔案系統層(VFS) 了。然而,直到當VFS 呼叫它,請求檔案、目錄的i-node 的時候,/proc 檔案系統才根據核心中的資訊建立相應的檔案和目錄。
 
載入proc 檔案系統
 
如果系統中還沒有載入proc 檔案系統,可以通過如下命令載入proc 檔案系統:
 
mount -t proc proc /proc
上述命令將成功載入你的proc 檔案系統。更多細節請閱讀mount 命令的man page。
 
察看/proc 的檔案
 
/proc 的檔案可以用於訪問有關核心的狀態、計算機的屬性、正在執行的程序的狀態等資訊。大部分/proc 中的檔案和目錄提供系統物理環境最新的資訊。儘管/proc 中的檔案是虛擬的,但它們仍可以使用任何檔案編輯器或像'more', 'less'或'cat'這樣的程式來檢視。當編輯程式試圖開啟一個虛擬檔案時,這個檔案就通過核心中的資訊被憑空地(on the fly) 建立了。這是一些我從我的系統中得到的一些有趣結果:
 
$ ls -l /proc/cpuinfo
-r--r--r-- 1 root root 0 Dec 25 11:01 /proc/cpuinfo
 
$ file /proc/cpuinfo
/proc/cpuinfo: empty
 
$ cat /proc/cpuinfo
 
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 6
cpu MHz : 1000.119
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr xmm
bogomips : 1998.85
 
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 8
model name : Pentium III (Coppermine)
stepping : 6
cpu MHz : 1000.119
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr xmm
bogomips : 1992.29
 
這是一個從雙CPU 的系統中得到的結果,上述大部分的資訊十分清楚地給出了這個系統的有用的硬體資訊。有些/proc 的檔案是經過編碼的,不同的工具可以被用來解釋這些編碼過的資訊並輸出成可讀的形式。這樣的工具包括:'top', 'ps', 'apm' 等。
 
得到有用的系統/核心資訊
 
proc 檔案系統可以被用於收集有用的關於系統和執行中的核心的資訊。下面是一些重要的檔案:
 
* /proc/cpuinfo - CPU 的資訊(型號, 家族, 快取大小等)
* /proc/meminfo - 實體記憶體、交換空間等的資訊
* /proc/mounts - 已載入的檔案系統的列表
* /proc/devices - 可用裝置的列表
* /proc/filesystems - 被支援的檔案系統
* /proc/modules - 已載入的模組
* /proc/version - 核心版本
* /proc/cmdline - 系統啟動時輸入的核心命令列引數
 
proc 中的檔案遠不止上面列出的這麼多。想要進一步瞭解的讀者可以對/proc 的每一個檔案都'more'一下或讀參考文獻[1]獲取更多的有關/proc 目錄中的檔案的資訊。我建議使用'more'而不是'cat',除非你知道這個檔案很小,因為有些檔案(比如kcore) 可能會非常長。
 
有關執行中的程序的資訊
 
/proc 檔案系統可以用於獲取執行中的程序的資訊。在/proc 中有一些編號的子目錄。每個編號的目錄對應一個程序id (PID)。這樣,每一個執行中的程序/proc 中都有一個用它的PID 命名的目錄。這些子目錄中包含可以提供有關程序的狀態和環境的重要細節資訊的檔案。讓我們試著查詢一個執行中的程序。
 
$ ps -aef | grep mozilla
root 32558 32425 8 22:53 pts/1 00:01:23 /usr/bin/mozilla
 
上述命令顯示有一個正在執行的mozilla 程序的PID 是32558。相對應的,/proc 中應該有一個名叫32558 的目錄
 
$ ls -l /proc/32558
total 0
-r--r--r-- 1 root root 0 Dec 25 22:59 cmdline
-r--r--r-- 1 root root 0 Dec 25 22:59 cpu
lrwxrwxrwx 1 root root 0 Dec 25 22:59 cwd -> /proc/
-r-------- 1 root root 0 Dec 25 22:59 environ
lrwxrwxrwx 1 root root 0 Dec 25 22:59 exe -> /usr/bin/mozilla*
dr-x------ 2 root root 0 Dec 25 22:59 fd/
-r--r--r-- 1 root root 0 Dec 25 22:59 maps
-rw------- 1 root root 0 Dec 25 22:59 mem
-r--r--r-- 1 root root 0 Dec 25 22:59 mounts
lrwxrwxrwx 1 root root 0 Dec 25 22:59 root -> //
-r--r--r-- 1 root root 0 Dec 25 22:59 stat
-r--r--r-- 1 root root 0 Dec 25 22:59 statm
-r--r--r-- 1 root root 0 Dec 25 22:59 status
 
檔案"cmdline" 包含啟動程序時呼叫的命令列。"envir" 程序的環境變兩。"status" 是程序的狀態資訊,包括啟動程序的使用者的使用者ID (UID) 和組ID(GID) ,父程序ID (PPID),還有程序當前的狀態,比如"Sleelping"和"Running"。每個程序的目錄都有幾個符號連結,"cwd"是指向程序當前工作目錄的符號連結,"exe"指向執行的程序的可執行程式,"root"指向被這個程序看作是根目錄的目錄(通常是"/")。目錄"fd"包含指向程序使用的檔案描述符的連結。"cpu"僅在執行SMP 核心時出現,裡面是按CPU 劃分的程序時間。
 
/proc/self 是一個有趣的子目錄,它使得程式可以方便地使用/proc 查詢本程序地資訊。/proc/self 是一個連結到/proc 中訪問/proc 的程序所對應的PID 的目錄的符號連結。
 
通過/proc 與核心互動
 
上面討論的大部分/proc 的檔案是隻讀的。而實際上/proc 檔案系統通過/proc 中可讀寫的檔案提供了對核心的互動機制。寫這些檔案可以改變核心的狀態,因而要慎重改動這些檔案。/proc/sys 目錄存放所有可讀寫的檔案的目錄,可以被用於改變核心行為。
 
/proc/sys/kernel - 這個目錄包含反通用核心行為的資訊。/proc/sys/kernel/{domainname, hostname} 存放著機器/網路的域名和主機名。這些檔案可以用於修改這些名字。
 
$ hostname
machinename.domainname.com
 
$ cat /proc/sys/kernel/domainname
domainname.com
 
$ cat /proc/sys/kernel/hostname
machinename
 
$ echo "new-machinename" > /proc/sys/kernel/hostname
 
$ hostname
new-machinename.domainname.com
 
這樣,通過修改/proc 檔案系統中的檔案,我們可以修改主機名。很多其他可配置的檔案存在於/proc/sys/kernel/。這裡不可能列出所有這些檔案,讀者可以自己去這個目錄檢視以得到更多細節資訊。
另一個可配置的目錄是/proc/sys/net。這個目錄中的檔案可以用於修改機器/網路的網路屬性。比如,簡單修改一個檔案,你可以在網路上癮藏匿的計算機。
 
$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 
這將在網路上癮藏你的機器,因為它不響應icmp_echo。主機將不會響應其他主機發出的ping 查詢。
 
$ ping machinename.domainname.com
no answer from machinename.domainname.com
 
要改回預設設定,只要
 
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 
/proc/sys 下還有許多其它可以用於改變核心屬性。讀者可以通過參考文獻[1], [2] 獲取更多資訊。
 
結論
 
/proc 檔案系統提供了一個基於檔案的Linux 內部介面。它可以用於確定系統的各種不同裝置和程序的狀態。對他們進行配置。因而,理解和應用有關這個檔案系統的知識是理解你的Linux 系統的關鍵。
 
原文:http://www.sudu.cn/info/html/edu/20070101/292381.html
 
什麼是proc檔案系統
proc檔案系統是一個偽檔案系統,它只存在記憶體當中,而不佔用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式可以通過proc得到系統的資訊,並可以改變核心的某些引數。由於系統的資訊,如程序,是動態改變的,所以使用者或應用程式讀取proc檔案時,proc檔案系統是動態從系統核心讀出所需資訊並提交的。它的目錄結構如下:
目錄名稱 目錄內容
apm 高階電源管理資訊
cmdline 核心命令列
Cpuinfo 關於Cpu資訊
Devices 可以用到的裝置(塊裝置/字元裝置)
Dma 使用的DMA通道
Filesystems 支援的檔案系統
Interrupts 中斷的使用
Ioports I/O埠的使用
Kcore 核心核心印象
Kmsg 核心訊息
Ksyms 核心符號表
Loadavg 負載均衡
Locks 核心鎖
Meminfo 記憶體資訊
Misc 雜項
Modules 載入模組列表
Mounts 載入的檔案系統
Partitions 系統識別的分割槽表
Rtc 實時時鐘
Slabinfo Slab池資訊
Stat 全面統計狀態表
Swaps 對換空間的利用情況
Version 核心版本
Uptime 系統正常執行時間
並不是所有這些目錄在你的系統中都有,這取決於你的核心配置和裝載的模組。另外,在/proc下還有三個很重要的目錄:net,scsi和sys。Sys目錄是可寫的,可以通過它來訪問或修改核心的引數(見下一部分),而net和scsi則依賴於核心配置。例如,如果系統不支援scsi,則scsi 目錄不存在。
除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是程序目錄。系統中當前執行的每一個程序都有對應的一個目錄在/proc下,以程序的PID號為目錄名,它們是讀取程序資訊的介面。而self目錄則是讀取程序本身的資訊介面,是一個link。Proc檔案系統的名字就是由之而起。程序目錄的結構如下:
目錄名稱 目錄內容
Cmdline 命令列引數
Environ 環境變數值
Fd 一個包含所有檔案描述符的目錄
Mem 程序的記憶體被利用情況
Stat 程序狀態
Status 程序當前狀態,以可讀的方式顯示出來
Cwd 當前工作目錄的連結
Exe 指向該程序的執行命令檔案
Maps 記憶體映象
Statm 程序記憶體狀態資訊
Root 連結此程序的root目錄
使用者如果要檢視系統資訊,可以用cat命令。例如:
# cat /proc/interrupts
CPU0
0: 8728810 XT-PIC timer
1: 8Array5 XT-PIC keyboard
2: 0 XT-PIC cascade
3: 5316Array5 XT-PIC aha152x
4: 2014133 XT-PIC serial
5: 44401 XT-PIC pcnet_cs
8: 2 XT-PIC rtc
11: 8 XT-PIC i82365
12: 182Array18 XT-PIC Mouse
13: 1 XT-PIC fpu PS/2
14: 1232265 XT-PIC ide0
15: 7 XT-PIC ide1
NMI: 0
使用者還可以實現修改核心引數。在/proc檔案系統中有一個有趣的目錄:/proc/sys。它不僅提供了核心資訊,而且可以通過它修改核心引數,來優化你的系統。但是你必須很小心,因為可能會造成系統崩潰。最好是先找一臺無關緊要的機子,除錯成功後再應用到你的系統上。
要改變核心的引數,只要用vi編輯或echo引數重定向到檔案中即可。下面有一個例子:
# cat /proc/sys/fs/file-max
40Array6
# echo 81Array2 > /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max
81Array2
如果你優化了引數,則可以把它們寫成新增到檔案rc.local中,使它在系統啟動時自動完成修改。
/proc檔案系統中網路引數
/proc/sys/kernel
核心共享記憶體限制,預設最小為4M.兩個引數可以改成一樣.加大.
/proc/sys/kernel/shmall 40Array6
/proc/sys/kernel/shmmax 33554432
 
/proc/sys/net/ipv4/
該目錄包含的是和tcp/ip協議相關的各種引數,下面我們就對這些網路引數加以詳細的說明。
ip_forward 引數型別:BOOLEAN
0 - 關閉(預設值)
not 0 - 開啟ip轉發
在網路本地介面之間轉發資料報。該引數非常特殊,對該引數的修改將導致其它所有相關配置引數恢復其預設值(對於主機參閱RFC1122,對於路由器參見RFC1812)
/proc/sys/net/ipv4/ip_conntrack_max 65440 (預設)
ip_default_ttl 引數型別:INTEGER
預設值為64 。表示IP資料報的Time To Live值。
ip_no_pmtu_disc 引數型別:BOOLEAN
關閉路徑MTU探測,預設值為FALSE
ipfrag_high_thresh 引數型別:整型
用來組裝分段的IP包的最大記憶體量。當ipfrag_high_thresh數量的記憶體被分配來用來組裝IP包,則IP分片處理器將丟棄資料報直到ipfrag_low_thresh數量的記憶體被用來組裝IP包。
ipfrag_low_thresh 引數型別:整型
參見ipfrag_high_thresh。
ipfrag_time 引數型別:整型
儲存一個IP分片在記憶體中的時間。
inet_peer_threshold 引數型別:整型
INET對端儲存器某個合適值,當超過該閥值條目將被丟棄。該閥值同樣決定生存時間以及廢物收集通過的時間間隔。條目越多?存活期越低?GC 間隔越短
inet_peer_minttl 引數型別:整型
條目的最低存活期。在重組端必須要有足夠的碎片(fragment)存活期。這個最低存活期必須保證緩衝池容積是否少於inet_peer_threshold。該值以jiffies為單位測量。
inet_peer_maxttl 引數型別:整型
條目的最大存活期。在此期限到達之後?如果緩衝池沒有耗盡壓力的話(例如?緩衝池中的條目數目非常少)?不使用的條目將會超時。該值以jiffies為單位測量。
inet_peer_gc_mintime 引數型別:整型
廢物收集(GC)通過的最短間隔。這個間隔會影響到緩衝池中記憶體的高壓力。 該值以jiffies為單位測量。
inet_peer_gc_maxtime 引數型別:整型
廢物收集(GC)通過的最大間隔,這個間隔會影響到緩衝池中記憶體的低壓力。 該值以jiffies為單位測量。
tcp_syn_retries 引數型別:整型
對於一個新建連線,核心要傳送多少個SYN 連線請求才決定放棄。不應該大於255,預設值是5,對應於180秒左右。
tcp_synack_retries 引數型別:整型
對於遠端的連線請求SYN,核心會發送SYN +ACK資料報,以確認收到上一個SYN連線請求包。這是所謂的三次握手( threeway handshake)機制的第二個步驟。這裡決定核心在放棄連線之前所送出的SYN+ACK 數目。
tcp_keepalive_time 引數型別:整型
當keepalive開啟的情況下,TCP傳送keepalive訊息的頻率,預設值是2個小時。
tcp_keepalive_probes 引數型別:整型
TCP傳送keepalive探測以確定該連線已經斷開的次數,預設值是Array。
tcp_keepalive_interval 引數型別:整型
探測訊息傳送的頻率,乘以tcp_keepalive_probes就得到對於從開始探測以來沒有響應的連線殺除的時間。預設值為75秒,也就是沒有活動的連線將在大約11分鐘以後將被丟棄。
tcp_retries1 引數型別:整型
當出現可疑情況而必須向網路層報告這個可疑狀況之前?需要進行多少次重試。最低的RFC 數值是3 ?這也是預設值?根據RTO的值大約在3秒- 8分鐘之間。
tcp_retries2 引數型別:整型
在丟棄啟用的TCP連線之前?需要進行多少次重試。RFC1122規定,該值必須大於100秒。預設值為15,根據RTO的值來決定,相當於13-30分鐘,
tcp_orphan_retries 引數型別:整型
在近端丟棄TCP連線之前?要進行多少次重試。預設值是7 個?相當於50秒- 16分鐘?視RTO 而定。如果您的系統是負載很大的web伺服器?那麼也許需要降低該值?這類sockets 可能會耗費大量的資源。另外參的考tcp_max_orphans 。
tcp_fin_timeout 引數型別:整型
對於本端斷開的socket連線,TCP保持在FIN-WAIT-2狀態的時間。對方可能會斷開連線或一直不結束連線或不可預料的程序死亡。預設值為60 秒。過去在2.2版本的核心中是180 秒。您可以設定該值?但需要注意?如果您的機器為負載很重的web伺服器?您可能要冒記憶體被大量無效資料報填滿的風險?FIN-WAIT-2 sockets 的危險性低於FIN-WAIT-1 ?因為它們最多隻吃1.5K 的記憶體?但是它們存在時間更長。另外參考tcp_max_orphans。
tcp_max_tw_buckets 引數型別:整型
系統在同時所處理的最大timewait sockets 數目。如果超過此數的話?time-wait socket 會被立即砍除並且顯示警告資訊。之所以要設定這個限制?純粹為了抵禦那些簡單的DoS 攻擊?千萬不要人為的降低這個限制?不過?如果網路條件需要比預設值更多?則可以提高它(或許還要增加記憶體)。
tcp_tw_recycle 引數型別:布林
開啟快速TIME-WAIT sockets 回收。預設值是1。除非得到技術專家的建議或要求?請不要隨意修改這個值。
tcp_max_orphans 引數型別:整型
系統所能處理不屬於任何程序的TCP sockets最大數量。假如超過這個數量?那麼不屬於任何程序的連線會被立即reset,並同時顯示警告資訊。之所以要設定這個限制?純粹為了抵禦那些簡單的DoS 攻擊?千萬不要依賴這個或是人為的降低這個限制
tcp_abort_on_overflow 引數型別:布林
當守護程序太忙而不能接受新的連線,就象對方傳送reset訊息,預設值是false。這意味著當溢位的原因是因為一個偶然的猝發,那麼連線將恢復狀態。只有在你確信守護程序真的不能完成連線請求時才打開該選項,該選項會影響客戶的使用。
tcp_syncookies 引數型別:整型
只有在核心編譯時選擇了CONFIG_SYNCOOKIES時才會發生作用。當出現syn等候隊列出現溢位時象對方傳送syncookies。目的是為了防止syn flood攻擊。預設值是false。
注意:該選項千萬不能用於那些沒有收到攻擊的高負載伺服器,如果在日誌中出現synflood訊息,但是調查發現沒有收到synflood攻擊,而是合法使用者的連線負載過高的原因,你應該調整其它引數來提高伺服器效能。參考: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.
syncookie嚴重的違背TCP協議,不允許使用TCP擴充套件,可能對某些服務導致嚴重的效能影響(如SMTP轉發)。
tcp_stdurg 引數型別:整型
使用TCP urg pointer 欄位中的主機請求解釋功能。大部份的主機都使用老舊的BSD解釋,因此如果您在Linux 開啟它?或會導致不能和它們正確溝通。預設值為為?FALSE
tcp_max_syn_backlog 引數型別:整型
對於那些依然還未獲得客戶端確認的連線請求?需要儲存在佇列中最大數目。對於超過128Mb 記憶體的系統?預設值是1024 ?低於128Mb 的則為128。如果伺服器經常出現過載?可以嘗試增加這個數字。警告?假如您將此值設為大於1024?最好修改include/net/tcp.h 裡面的TCP_SYNQ_HSIZE ?以保持TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale  128Mb 32768-61000
0)則系統將忽略所有傳送給自己的ICMP ECHO請求或那些廣播地址的請求。
icmp_destunreach_rate - 整數
icmp_paramprob_rate - 整數
icmp_timeexceed_rate - 整數
icmp_echoreply_rate - 整數(not enabled per default)
限制發向特定目標的ICMP資料報的最大速率。0表示沒有任何限制,否則表示jiffies資料單位中允許傳送的個數。
icmp_ignore_bogus_error_responses - 布林型別
某些路由器違背RFC1122標準,其對廣播幀傳送偽造的響應來應答。這種違背行為通常會被以告警的方式記錄在系統日誌中。如果該選項設定為True,核心不會記錄這種警告資訊。預設值為False。
(1) Jiffie: 核心使用的內部時間單位,在i386系統上大小為1/100s,在Alpha中為1/1024S。在/usr/include/asm/param.h中的HZ定義有特定系統的值。
conf/interface/*:
conf/all/*是特定的,用來修改所有介面的設定,is special and changes the settings for all interfaces.
Change special settings per interface.
log_martians - 布林型別
記錄帶有不允許的地址的資料報到核心日誌中。
accept_redirects - 布林型別
收發接收ICMP重定向訊息。對於主機來說預設為True,對於用作路由器時預設值為False。
forwarding - 布林型別
在該介面開啟轉發功能
mc_forwarding - 布林型別
是否進行多播路由。只有核心編譯有CONFIG_MROUTE並且有路由服務程式在執行該引數才有效。
proxy_arp - 布林型別
開啟proxy arp功能。
shared_media - 布林型別
傳送(路由器)或接收(主機) RFC1620 共享媒體重定向。覆蓋ip_secure_redirects的值。預設為True。
secure_redirects - 布林型別
僅僅接收發給預設閘道器列表中閘道器的ICMP重定向訊息,預設值是TRUE。
send_redirects - 布林型別
如果是router,傳送重定向訊息,預設值是TRUE
bootp_relay - 布林型別
接收源地址為0.b.c.d,目的地址不是本機的資料報。用來支援BOOTP轉發服務程序,該程序將捕獲並轉發該包。預設為False,目前還沒有實現。
accept_source_route - 布林型別
接收帶有SRR選項的資料報。對於主機來說預設為False,對於用作路由器時預設值為True。
rp_filter 引數型別
1 - 通過反向路徑回溯進行源地址驗證(在RFC1812中定義)。對於單穴主機和stub網路路由器推薦使用該選項。
0 - 不通過反向路徑回溯進行源地址驗證。
預設值為0。某些釋出在啟動時自動將其開啟。
/proc/sys/net/ipv4/netfilter
ip_conntrack_buckets
ip_conntrack_count
ip_conntrack_generic_timeout
ip_conntrack_icmp_timeout
ip_conntrack_log_invalid
ip_conntrack_max 65536(預設)
ip_conntrack_tcp_be_liberal
ip_conntrack_tcp_loose
ip_conntrack_tcp_max_retrans
ip_conntrack_tcp_timeout_close
ip_conntrack_tcp_timeout_close_wait
ip_conntrack_tcp_timeout_established 432000(單位為秒,5天)
ip_conntrack_tcp_timeout_fin_wait
ip_conntrack_tcp_timeout_last_ack
ip_conntrack_tcp_timeout_max_retrans
ip_conntrack_tcp_timeout_syn_recv
ip_conntrack_tcp_timeout_syn_sent
ip_conntrack_tcp_timeout_time_wait
ip_conntrack_udp_timeout
ip_conntrack_udp_timeout_stream
 
#
 
#
#
 
 
Linux Linux Linux Linux 中/proc /proc /proc /proc 目錄下檔案詳解
宣告:可以自由轉載本文, 但請務必保留本文的完整性。
作者:張子堅
email:
[email protected]

說明:本文所涉及示例均在fedora core3 下得到。
--------------------------------------------------------------------------------
/proc 檔案系統下的多種檔案提供的系統資訊不是針對某個特定程序的, 而是能夠在整個系統範圍的上下文
中使用。可以使用的檔案隨系統配置的變化而變化。命令procinfo 能夠顯示基於其中某些檔案的多種系統
資訊。
以下詳細描述/proc 下的檔案:
--------------------------------------------------------------------------------
/proc/cmdline 檔案
這個檔案給出了核心啟動的命令列。它和用於程序的cmdline 項非常相似。
示例:
[
[email protected]
proc]# cat cmdline
ro root=LABEL=/ rhgb quiet
--------------------------------------------------------------------------------
/proc/cpuinfo 檔案
這個檔案提供了有關係統CPU 的多種資訊。這些資訊是從核心裡對CPU 的測試程式碼中得到的。檔案列出
了CPU 的普通型號 (386,486,586,686 等 ), 以及能得到的更多特定資訊 ( 製造商, 型號和版本 ) 。 檔案還包含
了以bogomips 表示的處理器速度, 而且如果檢測到CPU 的多種特性或者bug, 檔案還會包含相應的標誌。這
個檔案的格式為:檔案由多行構成, 每行包括一個域名稱, 一個冒號和一個值。
示例:
[
[email protected]
proc]# cat cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Athlon(tm) XP 1800+
stepping : 1
cpu MHz : 1530.165
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : nocoma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext
3dnowext 3dnow
bogomips : 2998.27
--------------------------------------------------------------------------------
/proc/devices 檔案
這個檔案列出字元和塊裝置的主裝置號, 以及分配到這些裝置號的裝置名稱。
示例:
[[email protected] /]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
29 fb
36 netlink
116 alsa
128 ptm
136 pts
180 usb
Block devices:
1 ramdisk
2 fd
3 ide0
9 md
22 ide1
253 device-mapper
254 mdp
--------------------------------------------------------------------------------/proc/dma 檔案
這個檔案列出由驅動程式保留的DMA 通道和保留它們的驅動程式名稱 。casade 項供用於把次DMA 控制器
從主控制器分出的DMA 行所使用; 這一行不能用於其它用途。
示例:
[[email protected] ~]# cat /proc/dma
4: cascade
--------------------------------------------------------------------------------
/proc/filesystems 檔案
這個檔案列出可供使用的檔案系統型別, 一種型別一行 。 雖然它們通常是編入核心的檔案系統型別, 但該檔案
還可以包含可載入的核心模組加入的其它檔案系統型別。
示例:
[[email protected] proc]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev binfmt_misc
nodev usbfs
nodev usbdevfs
nodev futexfs
nodev tmpfs
nodev pipefs
nodev eventpollfs
nodev devpts
ext2
nodev ramfs
nodev hugetlbfs
iso9660
nodev mqueue
nodev selinuxfs
ext3
nodev rpc_pipefs
nodev autofs
--------------------------------------------------------------------------------
/proc/interrupts 檔案
這個檔案的每一行都有一個保留的中斷 。 每行中的域有 : 中斷號, 本行中斷的發生次數, 可能帶有一個加號的
域(SA_INTERRUPT 標誌設定), 以及登記這個中斷的驅動程式的名字。可以在安裝新硬體前, 像檢視
/proc/dma 和/proc/ioports 一樣用cat 命令手工檢視手頭的這個檔案 。 這幾個檔案列出了當前投入使用的資源
(但是不包括那些沒有載入驅動程式的硬體所使用的資源 ) 。
示例:
[[email protected] SPECS]# cat /proc/interruptsCPU0
0: 7039406 XT-PIC timer
1: 6533 XT-PIC i8042
2: 0 XT-PIC cascade
3: 0 XT-PIC uhci_hcd
5: 108 XT-PIC VIA8233, uhci_hcd
8: 1 XT-PIC rtc
9: 0 XT-PIC acpi
10: 0 XT-PIC ehci_hcd
11: 17412 XT-PIC uhci_hcd, eth0
12: 140314 XT-PIC i8042
14: 37897 XT-PIC ide0
15: 60813 XT-PIC ide1
NMI: 0
ERR: 1
--------------------------------------------------------------------------------
/proc/ioports 檔案
這個檔案列出了諸如磁碟驅動器, 乙太網卡和音效卡裝置等多種裝置驅動程式登記的許多I/O 埠範圍。
示例:
[[email protected] SPECS]# cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
0376-0376 : ide1
0378-037a : parport0
037b-037f : parport0
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial
0800-0803 : PM1a_EVT_BLK
0804-0805 : PM1a_CNT_BLK
0808-080b : PM_TMR
0810-0815 : ACPI CPU throttle
0820-0823 : GPE0_BLK0cf8-0cff : PCI conf1
dc00-dcff : 0000:00:12.0
dc00-dcff : via-rhine
e000-e0ff : 0000:00:11.5
e000-e0ff : VIA8233
e400-e41f : 0000:00:10.0
e400-e41f : uhci_hcd
e800-e81f : 0000:00:10.1
e800-e81f : uhci_hcd
ec00-ec1f : 0000:00:10.2
ec00-ec1f : uhci_hcd
fc00-fc0f : 0000:00:11.1
fc00-fc07 : ide0
fc08-fc0f : ide1
--------------------------------------------------------------------------------
/proc/kcore 檔案
這個檔案是系統的實體記憶體以core 檔案格式儲存的檔案。例如,GDB 能用它考察核心的資料結構。它不是
純文字, 而是/proc 目錄下為數不多的幾個二進位制格式的項之一。
示例:
暫無
--------------------------------------------------------------------------------
/proc/kmsg 檔案
這個檔案用於檢索用printk 生成的核心訊息。任何時刻只能有一個具有超級使用者許可權的程序可以讀取這個
檔案。也可以用系統呼叫syslog 檢索這些訊息。通常使用工具dmesg 或守護程序klogd 檢索這些訊息。
示例:
暫無
--------------------------------------------------------------------------------
/proc/ksyms 檔案
這個檔案列出了已經登記的核心符號; 這些符號給出了變數或函式的地址 。 每行給出一個符號的地址, 符號名
稱以及登記這個符號的模組。程式ksyms,insmod 和kmod 使用這個檔案。它還列出了正在執行的任務數,
總任務數和最後分配的PID 。
示例:
暫無
--------------------------------------------------------------------------------
/proc/loadavg 檔案
這個檔案給出以幾個不同的時間間隔計算的系統平均負載, 這就如同uptime 命令顯示的結果那樣 。 前三個數
字是平均負載 。 這是通過計算過去1 分鐘,5 分鐘,15 分鐘裡執行佇列中的平均任務數得到的 。 隨後是正在執行
的任務數和總任務數。最後是上次使用的程序號。
示例:[[email protected] ~]# cat /proc/loadavg
0.11 0.16 0.14 3/126 3912
--------------------------------------------------------------------------------
/proc/locks 檔案
這個檔案包含在開啟的檔案上的加鎖資訊。檔案中的每一行描述了特定檔案和文件上的加鎖資訊以及對文
件施加的鎖的型別。核心也可以需要時對檔案施加強制性鎖。
示例:
[[email protected] redhat]# cat /proc/locks
1: POSIX ADVISORY READ 3822 03:0a:1067117 0 EOF
2: POSIX ADVISORY READ 3822 03:0a:1067138 0 EOF
3: POSIX ADVISORY WRITE 3326 03:0a:2326540 0 EOF
4: POSIX ADVISORY WRITE 2639 03:0a:2966595 0 EOF
5: FLOCK ADVISORY WRITE 2591 03:0a:2966586 0 EOF
6: POSIX ADVISORY WRITE 2540 03:0a:2966578 0 EOF
7: POSIX ADVISORY WRITE 2530 03:0a:2966579 0 EOF
8: POSIX ADVISORY WRITE 2402 03:0a:2966563 0 EOF
9: POSIX ADVISORY WRITE 2371 03:0a:2966561 0 EOF
--------------------------------------------------------------------------------
/proc/mdstat 檔案
這個檔案包含了由md 裝置驅動程式控制的RAID 裝置資訊。
示例:
[[email protected] ~]# cat /proc/mdstat
Personalities :
unused devices: <none>
--------------------------------------------------------------------------------
/proc/meminfo 檔案
這個檔案給出了記憶體狀態的資訊 。 它顯示出系統中空閒記憶體, 已用實體記憶體和交換記憶體的總量 。 它還顯示出
核心使用的共享記憶體和緩衝區總量。這些資訊的格式和free 命令顯示的結果類似。
示例:
[[email protected] ~]# cat /proc/meminfo
MemTotal: 223812 kB
MemFree: 3764 kB
Buffers: 9148 kB
Cached: 92112 kB
SwapCached: 364 kB
Active: 183640 kB
Inactive: 17196 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 223812 kB
LowFree: 3764 kBSwapTotal: 626524 kB
SwapFree: 620328 kB
Dirty: 12 kB
Writeback: 0 kB
Mapped: 142880 kB
Slab: 12668 kB
Committed_AS: 376732 kB
PageTables: 2336 kB
VmallocTotal: 3907576 kB
VmallocUsed: 2968 kB
VmallocChunk: 3904224 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 4096 kB
--------------------------------------------------------------------------------
/proc/misc 檔案
這個檔案報告用核心函式misc_register 登記的裝置驅動程式。
示例:
[[email protected] ~]# cat /proc/misc
63 device-mapper
175 agpgart
135 rtc
--------------------------------------------------------------------------------
/proc/modules 檔案
這個檔案給出可載入核心模組的資訊 。lsmod 程式用這些資訊顯示有關模組的名稱, 大小, 使用數目方面的信
息。
示例:
[[email protected] /]# cat /proc/modules
md5 4033 1 - Live 0x10a7f000
ipv6 232577 8 - Live 0x10b0c000
parport_pc 24705 1 - Live 0x10a8b000
lp 11565 0 - Live 0x10a7b000
parport 41737 2 parport_pc,lp, Live 0x10a55000
autofs4 24005 0 - Live 0x10a74000
i2c_dev 10433 0 - Live 0x109d2000
i2c_core 22081 1 i2c_dev, Live 0x10a6d000
sunrpc 160421 1 - Live 0x10a9d000
ipt_REJECT 6465 1 - Live 0x109da000
ipt_state 1857 5 - Live 0x109eb000
ip_conntrack 40693 1 ipt_state, Live 0x10a62000
iptable_filter 2753 1 - Live 0x10896000
ip_tables 16193 3 ipt_REJECT,ipt_state,iptable_filter, Live 0x109ed000dm_mod 54741 0 - Live 0x109f8000
button 6481 0 - Live 0x10905000
battery 8517 0 - Live 0x109d6000
ac 4805 0 - Live 0x10908000
uhci_hcd 31449 0 - Live 0x109dd000
ehci_hcd 31557 0 - Live 0x10949000
snd_via82xx 27237 2 - Live 0x10953000
snd_ac97_codec 64401 1 snd_via82xx, Live 0x10912000
snd_pcm_oss 47609 0 - Live 0x1093c000
snd_mixer_oss 17217 2 snd_pcm_oss, Live 0x1090c000
snd_pcm 97993 2 snd_via82xx,snd_pcm_oss, Live 0x10923000
snd_timer 29765 1 snd_pcm, Live 0x108ec000
snd_page_alloc 9673 2 snd_via82xx,snd_pcm, Live 0x108bd000
gameport 4801 1 snd_via82xx, Live 0x108a6000
snd_mpu401_uart 8769 1 snd_via82xx, Live 0x108b9000
snd_rawmidi 26725 1 snd_mpu401_uart, Live 0x108e4000
snd_seq_device 8137 1 snd_rawmidi, Live 0x1083b000
snd 54053 11
snd_via82xx,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,sn
d_seq_device, Live 0x108f6000
soundcore 9889 2 snd, Live 0x1089b000
via_rhine 23497 0 - Live 0x1089f000
mii 4673 1 via_rhine, Live 0x10893000
floppy 58609 0 - Live 0x108a9000
ext3 116809 1 - Live 0x10875000
jbd 74969 1 ext3, Live 0x10861000
lsmod 命令顯示結果如下:
[[email protected] /]# lsmod
Module Size Used by
md5 4033 1
ipv6 232577 8
parport_pc 24705 1
lp 11565 0
parport 41737 2 parport_pc,lp
autofs4 24005 0
i2c_dev 10433 0
i2c_core 22081 1 i2c_dev
sunrpc 160421 1
ipt_REJECT 6465 1
ipt_state 1857 5
ip_conntrack 40693 1 ipt_state
iptable_filter 2753 1ip_tables 16193 3 ipt_REJECT,ipt_state,iptable_filter
dm_mod 54741 0
button 6481 0
battery 8517 0
ac 4805 0
uhci_hcd 31449 0
ehci_hcd 31557 0
snd_via82xx 27237 2
snd_ac97_codec 64401 1 snd_via82xx
snd_pcm_oss 47609 0
snd_mixer_oss 17217 2 snd_pcm_oss
snd_pcm 97993 2 snd_via82xx,snd_pcm_oss
snd_timer 29765 1 snd_pcm
snd_page_alloc 9673 2 snd_via82xx,snd_pcm
gameport 4801 1 snd_via82xx
snd_mpu401_uart 8769 1 snd_via82xx
snd_rawmidi 26725 1 snd_mpu401_uart
snd_seq_device 8137 1 snd_rawmidi
snd 54053 11
snd_via82xx,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,sn
d_seq_device
soundcore 9889 2 snd
via_rhine 23497 0
mii 4673 1 via_rhine
floppy 58609 0
ext3 116809 1
jbd 74969 1 ext3
--------------------------------------------------------------------------------
/proc/mounts 檔案
這個檔案以/etc/mtab 檔案的格式給出當前系統所安裝的檔案系統資訊。這個檔案也能反映出任何手工安裝
從而在/etc/mtab 檔案中沒有包含的檔案系統。
示例:
[[email protected] /]# cat /proc/mounts
rootfs / rootfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
none /dev tmpfs rw 0 0
/dev/root / ext3 rw 0 0
none /dev tmpfs rw 0 0
none /selinux selinuxfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
/sys /sys sysfs rw 0 0none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
--------------------------------------------------------------------------------
/proc/pci 檔案
這個檔案給出PCI 裝置的資訊。用它可以方便地診斷PCI 問題。你可以從這個檔案中檢索到的資訊包括諸
如IDE 介面或USB 控制器這樣的裝置, 匯流排, 裝置和功能編號, 裝置延遲以及IRQ 編號。
示例:
[[email protected] /]# cat /proc/pci
PCI devices found:
Bus 0, device 0, function 0:
Class 0600: PCI device 1106:3116 (rev 0).
Master Capable. Latency=8.
Prefetchable 32 bit memory at 0xe0000000 [0xe7ffffff].
Bus 0, device 1, function 0:
Class 0604: PCI device 1106:b091 (rev 0).
Master Capable. No bursts. Min Gnt=12.
Bus 0, device 16, function 2:
Class 0c03: PCI device 1106:3038 (rev 12.
IRQ 5.
Master Capable. Latency=32.
I/O at 0xec00 [0xec1f].
Bus 0, device 16, function 1:
Class 0c03: PCI device 1106:3038 (rev 12.
IRQ 3.
Master Capable. Latency=32.
I/O at 0xe800 [0xe81f].
Bus 0, device 16, function 0:
Class 0c03: PCI device 1106:3038 (rev 12.
IRQ 11.
Master Capable. Latency=32.
I/O at 0xe400 [0xe41f].
Bus 0, device 16, function 3:
Class 0c03: PCI device 1106:3104 (rev 130).
IRQ 10.
Master Capable. Latency=32.
Non-prefetchable 32 bit memory at 0xdfffff00 [0xdfffffff].
Bus 0, device 17, function 0:
Class 0601: PCI device 1106:3177 (rev 0).
Bus 0, device 17, function 1:Class 0101: PCI device 1106:0571 (rev 6).
IRQ 255.
Master Capable. Latency=32.
I/O at 0xfc00 [0xfc0f].
Bus 0, device 17, function 5:
Class 0401: PCI device 1106:3059 (rev 80).
IRQ 5.
I/O at 0xe000 [0xe0ff].
Bus 0, device 18, function 0:
Class 0200: PCI device 1106:3065 (rev 116).
IRQ 11.
Master Capable. Latency=32. Min Gnt=3.Max Lat=8.
I/O at 0xdc00 [0xdcff].
Non-prefetchable 32 bit memory at 0xdffffe00 [0xdffffeff].
Bus 1, device 0, function 0:
Class 0300: PCI device 5333:8d04 (rev 0).
IRQ 11.
Master Capable. Latency=32. Min Gnt=4.Max Lat=255.
Non-prefetchable 32 bit memory at 0xdfe80000 [0xdfefffff].
Prefetchable 32 bit memory at 0xd0000000 [0xd7ffffff].
--------------------------------------------------------------------------------
/proc/stat 檔案
這個檔案包含的資訊有CPU 利用率, 磁碟, 記憶體頁, 記憶體對換, 全部中斷, 接觸開關以及賞賜自舉時間(自1970
年1 月1 日起的秒數 ) 。
示例:
[[email protected] /]# cat /proc/stat
cpu 31994 3898 7161 381600 15254 451 0
cpu0 31994 3898 7161 381600 15254 451 0
intr 4615930 4404290 3364 0 0 12 0 7 0 2 0 0 12618 112114 0 44142 39381
ctxt 1310498
btime 1148891913
processes 4249
procs_running 4
procs_blocked 0
--------------------------------------------------------------------------------
/proc/uptime 檔案
這個檔案給出自從上次系統自舉以來的秒數, 以及其中有多少秒處於空閒 。 這主要供uptime 程式使用 。 比較
這兩個數字能夠告訴你長期來看CPU 週期浪費的比例。
示例:
[[email protected] /]# cat /proc/uptime
4477.04 4021.10--------------------------------------------------------------------------------
/proc/version 檔案
這個檔案只有一行內容, 說明正在執行的核心版本。可以用標準的程式設計方法進行分析獲得所需的系統資訊 。
示例:
[[email protected] /]# cat /proc/version
Linux version 2.6.9-1.667 ( [email protected] ) (gcc version 3.4.2 20041017 (Red Hat
3.4.2-6.fc3)) #1 Tue Nov 2 14:41:25 EST 2004
--------------------------------------------------------------------------------
/proc/net 子目錄
此目錄下的檔案描述或修改了聯網程式碼的行為。可以通過使用 arp,netstat,route 和ipfwadm 命令設定或查詢
這些特殊檔案中的許多檔案。
示例:
[[email protected] /]# ls /proc/net
anycast6 ip_conntrack mcfilter6 rt6_stats tcp
arp ip_conntrack_expect netlink rt_acct tcp6
dev ip_mr_cache netstat rt_cache udp
dev_mcast ip_mr_vif packet snmp udp6
dev_snmp6 ip_tables_matches psched snmp6 unix
if_inet6 ip_tables_names raw sockstat wireless
igmp ip_tables_targets raw6 sockstat6
igmp6 ipv6_route route softnet_stat
ip6_flowlabel mcfilter rpc stat
--------------------------------------------------------------------------------
以下摘要介紹此目錄下檔案的功能:
arp
轉儲每個網路介面的arp 表中dev 包的統計
dev
來自網路裝置的統計
dev_mcast
列出二層(資料鏈路層)多播組
igmp
加入的IGMP 多播組
netlink
netlink 套介面的資訊
netstat
網路流量的多種統計。第一行是資訊頭, 帶有每個變數的名稱。接下來的一行儲存相應變數的值
raw
原始套介面的套介面表
route
靜態路由表
rpc
包含RPC 資訊的目錄rt_cache
路由緩衝
snmp
snmp agent 的ip/icmp/tcp/udp 協議統計; 各行交替給出欄位名和值
sockstat
列出使用的tcp/udp/raw/pac/syc_cookies 的數量
tcp
TCP 連線的套介面
udp
UDP 連線的套介面表
unix
UNIX 域套介面的套介面表
--------------------------------------------------------------------------------
示例:[[email protected] /]# cat /proc/net/route
Iface Destination Gateway Flags RefCnt Use Metric Mask MTU
Window IRTT
eth0 0035C2DA 00000000 0001 0 0 0 80FFFFF0
eth0 0000FEA9 00000000 0001 0 0 0 0000FFF0
eth0 00000000 0135C2DA 0003 0 0 0 00000000
--------------------------------------------------------------------------------
[[email protected] /]# cat /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:8000 00000000:0000 0A 00000000:00000000 00:00000000 00000000 29 0 9525 1
0dde7500 3000 0 0 2 -1
1: 00000000:006F 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 9484 1
0dde79e0 3000 0 0 2 -1
2: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 10049 1
0a8e3a00 3000 0 0 2 -1
3: 0100007F:14D7 00000000:0000 0A 00000000:00000000 00:00000000 00000000 99 0 9847 1
0dde7020 3000 0 0 2 -1
4: 0100007F:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 10286 1
0a8e3520 3000 0 0 2 -1
--------------------------------------------------------------------------------
[[email protected] /]# cat /proc/net/arp
IP address HW type Flags HW address Mask Device
218.194.53.1 0x1 0x2 00:0D:BC:78:07:3F * eth0
--------------------------------------------------------------------------------
[[email protected] /]# cat /proc/net/udp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:8000 00000000:0000 07 00000000:00000000 00:00000000 00000000 29 0 9520 2
0b4ef7c0
105: 00000000:14E9 00000000:0000 07 00000000:00000000 00:00000000 00000000 99 0 10284 20b4ef040
111: 00000000:006F 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 9483 2
0b4efcc0
116: 00000000:02F4 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 9511 2
0b4efa40
119: 00000000:0277 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 10050 2
0b4ef2c0
--------------------------------------------------------------------------------
/proc/scsi 子目錄
此目錄下包含一個列出了所有檢測到的SCSI 裝置的檔案, 並且為每種控制器驅動程式提供一個目錄, 在這個
目錄下又為已安裝的此種控制器的每個例項提供一個子目錄。
示例:
由於本人的機器沒有SCSI 裝置, 顧暫時無法提供示例。
--------------------------------------------------------------------------------
/proc/sys 子目錄
在此目錄下有許多子目錄 。 此目錄中的許多項都可以用來調整系統的效能 。 這個目錄包含資訊太多, 無法介
紹全部。只在示例中展示目錄下的一些檔案。
示例:[[email protected] /]# ls /proc/sys
debug dev fs kernel net proc sunrpc vm
--------------------------------------------------------------------------------
[[email protected] ~]# ls /proc/sys/fs
aio-max-nr dentry-state file-nr lease-break-time overflowgid
aio-nr dir-notify-enable inode-nr leases-enable overflowuid
binfmt_misc file-max inode-state mqueue quota
--------------------------------------------------------------------------------
[[email protected] ~]# ls /proc/sys/kernel
acct hotplug panic sem
cad_pid modprobe panic_on_oops shmall
cap-bound msgmax pid_max shmmax
core_pattern msgmnb print-fatal-signals shmmni
core_uses_pid msgmni printk sysrq
ctrl-alt-del ngroups_max printk_ratelimit tainted
domainname osrelease printk_ratelimit_burst threads-max
exec-shield ostype pty vdso
exec-shield-randomize overflowgid random version
hostname overflowuid real-root-dev
--------------------------------------------------------------------------------
[[email protected] ~]# ls /proc/sys/net
core ethernet ipv4 ipv6 unix
--------------------------------------------------------------------------------
[[email protected] sys]# ls /proc/sys/vmblock_dump laptop_mode nr_pdflush_threads
dirty_background_ratio legacy_va_layout overcommit_memory
dirty_expire_centisecs lower_zone_protection overcommit_ratio
dirty_ratio max_map_count page-cluster
dirty_writeback_centisecs min_free_kbytes swappiness
hugetlb_shm_group nr_hugepages vfs_cache_pressure
--------------------------------------------------------------------------------
[[email protected] sys]# ls /proc/sys/net/ipv4
conf tcp_fack
icmp_echo_ignore_all tcp_fin_timeout
icmp_echo_ignore_broadcasts tcp_frto
icmp_ignore_bogus_error_responses tcp_keepalive_intvl
icmp_ratelimit tcp_keepalive_probes
icmp_ratemask tcp_keepalive_time
igmp_max_memberships tcp_low_latency
igmp_max_msf tcp_max_orphans
inet_peer_gc_maxtime tcp_max_syn_backlog
inet_peer_gc_mintime tcp_max_tw_buckets
inet_peer_maxttl tcp_mem
inet_peer_minttl tcp_moderate_rcvbuf
inet_peer_threshold tcp_no_metrics_save
ip_autoconfig tcp_orphan_retries
ip_conntrack_max tcp_reordering
ip_default_ttl tcp_retrans_collapse
ip_dynaddr tcp_retries1
ip_forward tcp_retries2
ipfrag_high_thresh tcp_rfc1337
ipfrag_low_thresh tcp_rmem
ipfrag_secret_interval tcp_sack
ipfrag_time tcp_stdurg
ip_local_port_range tcp_synack_retries
ip_nonlocal_bind tcp_syncookies
ip_no_pmtu_disc tcp_syn_retries
neigh tcp_timestamps
netfilter tcp_tso_win_divisor
route tcp_tw_recycle
tcp_abort_on_overflow tcp_tw_reuse
tcp_adv_win_scale tcp_vegas_alpha
tcp_app_win tcp_vegas_beta
tcp_bic tcp_vegas_cong_avoid
tcp_bic_fast_convergence tcp_vegas_gamma
tcp_bic_low_window tcp_westwood
tcp_dsack tcp_window_scalingtcp_ecn tcp_wmem
--------------------------------------------------------------------------------
[[email protected] sys]# cat /proc/sys/kernel/shmall
2097152
--------------------------------------------------------------------------------
[[email protected] sys]# cat /proc/sys/kernel/osrelease
2.6.9-1.667
--------------------------------------------------------------------------------
總結 :/proc 檔案系統包含了大量的有關當前系統狀態的資訊 。proc 的手冊頁中也有對這些檔案的解釋文件 。
把檔案和分析這些檔案的工具產生的輸出進行比較能夠更加清晰地瞭解這些檔案

相關推薦

linux /proc

proc 檔案系統   在Linux中有額外的機制可以為核心和核心模組將資訊傳送給程序-- /proc 檔案系統。最初設計的目的是允許更方便的對程序資訊進行訪問(因此得名),現在它被每一個有有趣的東西報告的核心使用,例如/proc/modules 有模組的列表/proc/meminfo 有記憶體使用的統計表。

linuxtop

linux查看進程之top詳解簡介top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。top顯示系統當前的進程和其他狀況,是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程序為止.

04-LinuxDNS(一)

訪問 舉例 dynamic linux下 目錄 col ofo 圖片 nslookup 零、關於配置Linux下的DNS中一些名詞的解釋請參見文章“03-關於配置Linux下的DNS中一些名詞的解釋(轉自網絡)”自行學習一、關於DNS配置文件查看DNS配置文件: rpm -

05-LinuxDNS(二)

相關 proc gen lin 四種方法 .... rate 我的網站 四種 接“04-Linux中DNS詳解(一)” 六、在Linux上測試域名解析1、先檢查DNS是否設置正確 cat /etc/resolv.conf [resolv.conf] # Generate

07-LinuxDNS(四)

用戶 mail all 驗證 src 更改 條目 http nslookup 接“06-Linux中DNS詳解(三)” 九、配置主從DNS服務器實現域名解析容錯 1、實驗環境zhangyujia.com(192.168.80.100)為主區域,com(192.168.8

Linux掛載以及mount命令用法

掛載概念 Linux中的根目錄以外的檔案要想被訪問,需要將其“關聯”到根目錄下的某個目錄來實現,這種關聯操作就是“掛載”,這個目錄就是“掛載點”,解除次關聯關係的過程稱之為“解除安裝”。 注意:“掛載點”的目錄需要以下幾個要求: (1)目錄事先存在,可以用mkdir

Linuxinode,硬鏈接和軟鏈接介紹

依賴關系 多少 mod cp命令 因此 如同 執行權限 file 指向 inode 詳解   在Linux中,我們經常會做一些關於數據的操作(備份、傳輸、壓縮等)或是要在後臺持續的運行一些程序。由於,工作的數據量很大或者工作要持續很長的時間,我們就必須保

Linux工作筆記034---linux tail命令_linux在vi查詢字串

使用vi編輯器編輯長檔案時,常常是頭昏眼花,也找不到需要更改的內容。 這時,使用查詢功能尤為重要。 方法如下: 1、命令模式下輸入“/字串”,例如“/Section 3”。 2、如果查詢下一個,按“n”即可。 要自當前游標位置向上搜尋,請使用以下命令: /pa

Linux系統目錄

1、Linux檔案系統的層次結構        在Linux或Unix作業系統中,所有的檔案和目錄都被組織成以一個根節點開始的倒置的樹狀結構。        檔案系統的最頂層是由根目錄開始的,系統使用”/“來表示根目錄。在根目錄之下的既可以是目錄,也可以是檔案,而每一個目錄

Linux啟動流程

linux 詳解 啟動流程 grub mbr 內核 linux啟動流程第一部分 Linux啟動基礎知識1.1 linux centos6.8啟動流程圖 BIOS加電自檢à加載MBRà加載啟動grubà加載內核à啟動/sbin/i

Linux netstat命令,高級面試必備

bytes tool head osi ngs 進行 pen 通信 詳細信息 簡介 Netstat 命令用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Mem

JSJSON

名稱 完全 rip json詳解 core 兼容 json字符串 之間 org JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,采用完全獨立於語言的文本格式,是理想的數據交換格式。同時,JSON是 JavaScript 原生格式

linux top 命令

ctrl+ 一次 所有 使用方法 ase 隱藏 統計 ini 前臺 top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。下面詳細介紹它的使用方法。top - 01:06:48 up 1:22, 1 user

nodeJsnpm

commonjs -s license mon sem console 能力 效應 模塊安裝 npm 是 Node.js 的模塊依賴管理工具。作為開發者使用的工具,主要解決開發 node.js 時會遇到的問題。如同 RubyGems 對於 Ruby 開發者和 Maven 對

【轉】linux awk命令

column 環境變量 最後一行 工作流程 初始 文本文件 for循環 其中 cti 簡介 awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切

Linux ls命令

-c 目錄 輸出 限制 普通 排序 當前 ls -l sna ls 命令可以說是Linux下最常用的命令之一。 -a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。(後有詳解)-b 把文件名中不可輸出的字符用反斜杠加字符編號(就象在c語言裏一樣)的形式列出。-c 輸出

linux lsof命令

open 日誌 文件和目錄 delete 數據報 正在 某個文件 alt targe 簡介 lsof(list open files)是一個列出當前系統打開文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件

linux tail 命令

基本 linux中 file tail命令 方式 sed 缺省 顯示 有效 linux ---tail命令 linux中tail命令---用於查看文件內容 最基本的是cat、more和less。 1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /

linux 線程

大於 linux下 blog 根據 影響 stack 復制代碼 系統資源 代碼 線程 是計算機中獨立運行的最小單位,運行時占用很少的系統資源。可以把線程看成是操作系統分配CPU時間的基本單元。一個進程可以擁有一個至多個線程。它線程在進程內部共享地址空間、打開的文件描述符等資

006_netstatstate

51cto time list osi lose 手動 請求 等待 沒有 TCP三次握手的過程如下: 主動連接端發送一個SYN包給被動連接端; 被動連接端收到SYN包後,發送一個帶ACK和SYN標誌的包給主動連接端; 主動連接