在 Linux 系統(tǒng)中,/proc和/sys都是特殊的文件系統(tǒng),數(shù)據(jù)內(nèi)容是存放在內(nèi)存中,這兩個目錄文件中的內(nèi)容由內(nèi)核動態(tài)生成,查看這個文件中的內(nèi)容,實際上就是查詢內(nèi)核的某些狀態(tài)或信息。
可以將這兩個目錄文件理解為虛擬的目錄,即在硬盤上不存在。
/proc 文件系統(tǒng)
proc 是process(進程)的縮寫,這個目錄文件里面存放的是進程的相關信息
信息查看
查看進程信息
在/proc 目錄下每個進程都有一個以其PID命名的目錄,其中包含該進程的信息
/proc/pid

例如:
查看指定進程的線程數(shù)
ls /proc/PID/task | wc -l
說明: 下查看線程數(shù)量時,通常你會看到所有的線程,包括主線程。所以,實際上你看到的線程數(shù)是正確的,因為進程本身的主線程也算作一個線程
查看cpu信息
通過/proc目錄下的cpuinfo,可以查看CPU信息。
cat /proc/cpuinfo
內(nèi)存信息查看
通過/proc目錄下的meminfo兩個文件可以查看cpu和內(nèi)存的信息
cat /proc/meminfo
查看當前系統(tǒng)的掛載點
cat /proc/mounts
查看硬盤分區(qū)信息
cat /proc/partitions

修改內(nèi)核參數(shù)
網(wǎng)絡參數(shù)修改
修改網(wǎng)絡參數(shù),是修改 /proc/sys/net 目錄 中的相關文件;
IPv4轉(zhuǎn)發(fā)(路由功能)
# 1:開啟轉(zhuǎn)發(fā) 0:不開啟(默認)
ipv4/ip_forward

是否響應 ping
# 1:不會收到任何響應 0:正常響應
ipv4/icmp_echo_ignore_all

SYN洪水攻擊防范
ipv4/tcp_syncookies

修改內(nèi)存參數(shù)
修改內(nèi)存的相關參數(shù),是修改 /proc/sys/vm 目錄 中的相關文件;
使用swap分區(qū)的傾向性
# 默認值是60
swappiness

/sys 文件系統(tǒng)
信息查看
查看系統(tǒng)已加載內(nèi)核模塊
每個已加載的模塊在 /sys/module 下都有一個對應的目錄,其名稱與模塊名稱相同
/sys/module/mod_name
例如:查看某個模塊是否已經(jīng)加載
ls -l /sys/module | grep -i "bridge"

查看系統(tǒng)上的所有塊設備
每個塊設備都有一個對應的子目錄(與塊設備的名稱同名),這些子目錄內(nèi)部包含關于設備的詳細信息,例如設備的大小、模型、統(tǒng)計信息等。這些信息以文件形式存在,可以直接讀取它們來獲取有關設備的信息。
/sys/block
例如:查看主機上的塊設備文件
ls -l /sys/block/

sysctl 使用
sysctl 主要用于查詢和修改 /proc/sys 目錄下的內(nèi)核參數(shù),不能用于修改 /sys 目錄或其他位置的參數(shù)。 但是使用sysctl調(diào)整的內(nèi)核參數(shù)也是臨時生效的,可以通過寫入配置文件的方式來實現(xiàn)持久化生效。
systctl的配置文件
-
sysctl有很多個個配置文件,主要從 /etc/sysctl.conf 以及 /etc/sysctl.d/ 目錄中的文件讀取設置。一般只需要將相關配置放在 /etc/sysctl.conf 這個文件里面就行了。
-
編寫配置文件時,有一點不同的是,sysctl中的配置是使用點(.)來隔開路徑。/proc/sys不用寫, 因為這個配置文件對應就是管理/proc/sys這個目錄的。
-
運行 sysctl -p(-p:從指定的文件加載系統(tǒng)參數(shù)) 命令(沒有指定具體文件)加載參數(shù)時,系統(tǒng)首先會讀取 /etc/sysctl.conf 文件中的設置,然后按字母/數(shù)字順序讀取 /etc/sysctl.d/ 目錄中的所有 .conf 文件
說明:
-p 參數(shù) 從指定的配置文件中加載參數(shù)生效,不指定默認是/etc/sysctl.conf 文件中的設置,然后按字母/數(shù)字順序讀取 /etc/sysctl.d/ 目錄中的所有 .conf 文件
如果只是想臨時改變某個指定參數(shù)的值,使用sysctl 的 -w 參數(shù) 即可。
例如:臨時開啟網(wǎng)絡轉(zhuǎn)發(fā)
sysctl -w net.ipv4.ip_forward=1

通過 sysctl 的 -a 參數(shù) 即可顯示所有生效的系統(tǒng)參數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-711005.html
sysctl -a

例如:禁止ping通本機文章來源地址http://www.zghlxwxcb.cn/news/detail-711005.html
vim /etc/sysctl.d/test.conf
net.ipv4.icmp_echo_ignore_all=1
sysctl -p /etc/sysctl.d/test.conf
到了這里,關于Linux /proc和/sys的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!