Linux /proc和/sys

来源:https://www.cnblogs.com/heyongshen/archive/2023/10/23/17783252.html
-Advertisement-
Play Games

在 Linux 系統中,/proc和/sys都是特殊的文件系統,數據內容是存放在記憶體中,這兩個目錄文件中的內容由內核動態生成,查看這個文件中的內容,實際上就是查詢內核的某些狀態或信息。 可以將這兩個目錄文件理解為虛擬的目錄,即在硬碟上不存在。 /proc 文件系統 proc 是process(進程) ...


在 Linux 系統中,/proc和/sys都是特殊的文件系統,數據內容是存放在記憶體中,這兩個目錄文件中的內容由內核動態生成,查看這個文件中的內容,實際上就是查詢內核的某些狀態或信息。

可以將這兩個目錄文件理解為虛擬的目錄,即在硬碟上不存在。


/proc 文件系統

proc 是process(進程)的縮寫,這個目錄文件裡面存放的是進程的相關信息

信息查看

查看進程信息

在/proc 目錄下每個進程都有一個以其PID命名的目錄,其中包含該進程的信息

/proc/pid

例如:

查看指定進程的線程數

ls /proc/PID/task | wc -l

說明: 下查看線程數量時,通常你會看到所有的線程,包括主線程。所以,實際上你看到的線程數是正確的,因為進程本身的主線程也算作一個線程
image

查看cpu信息

通過/proc目錄下的cpuinfo,可以查看CPU信息。

cat /proc/cpuinfo

記憶體信息查看

通過/proc目錄下的meminfo兩個文件可以查看cpu和記憶體的信息

cat /proc/meminfo

查看當前系統的掛載點

cat /proc/mounts

查看硬碟分區信息

cat /proc/partitions

修改內核參數

網路參數修改

修改網路參數,是修改 /proc/sys/net 目錄 中的相關文件;

IPv4轉發(路由功能)
# 1:開啟轉發 0:不開啟(預設)

ipv4/ip_forward
是否響應 ping
# 1:不會收到任何響應   0:正常響應
ipv4/icmp_echo_ignore_all
SYN洪水攻擊防範
ipv4/tcp_syncookies

修改記憶體參數

修改記憶體的相關參數,是修改 /proc/sys/vm 目錄 中的相關文件;

使用swap分區的傾向性
# 預設值是60

swappiness

/sys 文件系統

信息查看

查看系統已載入內核模塊

每個已載入的模塊在 /sys/module 下都有一個對應的目錄,其名稱與模塊名稱相同

/sys/module/mod_name

例如:查看某個模塊是否已經載入

ls -l /sys/module | grep -i "bridge"

查看系統上的所有塊設備

每個塊設備都有一個對應的子目錄(與塊設備的名稱同名),這些子目錄內部包含關於設備的詳細信息,例如設備的大小、模型、統計信息等。這些信息以文件形式存在,可以直接讀取它們來獲取有關設備的信息。

/sys/block

例如:查看主機上的塊設備文件

ls -l /sys/block/

sysctl 使用

sysctl 主要用於查詢和修改 /proc/sys 目錄下的內核參數,不能用於修改 /sys 目錄或其他位置的參數。 但是使用sysctl調整的內核參數也是臨時生效的,可以通過寫入配置文件的方式來實現持久化生效。

systctl的配置文件

  1. sysctl有很多個個配置文件,主要從 /etc/sysctl.conf 以及 /etc/sysctl.d/ 目錄中的文件讀取設置。一般只需要將相關配置放在 /etc/sysctl.conf 這個文件裡面就行了。

  2. 編寫配置文件時,有一點不同的是,sysctl中的配置是使用點(.)來隔開路徑。/proc/sys不用寫, 因為這個配置文件對應就是管理/proc/sys這個目錄的。

  3. 運行 sysctl -p(-p:從指定的文件載入系統參數) 命令(沒有指定具體文件)載入參數時,系統首先會讀取 /etc/sysctl.conf 文件中的設置,然後按字母/數字順序讀取 /etc/sysctl.d/ 目錄中的所有 .conf 文件

說明:

-p 參數 從指定的配置文件中載入參數生效,不指定預設是/etc/sysctl.conf 文件中的設置,然後按字母/數字順序讀取 /etc/sysctl.d/ 目錄中的所有 .conf 文件

如果只是想臨時改變某個指定參數的值,使用sysctl 的 -w 參數 即可。

例如:臨時開啟網路轉發

sysctl -w net.ipv4.ip_forward=1

通過 sysctl 的 -a 參數 即可顯示所有生效的系統參數

sysctl -a

例如:禁止ping通本機

vim /etc/sysctl.d/test.conf
net.ipv4.icmp_echo_ignore_all=1

sysctl -p /etc/sysctl.d/test.conf

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們通過類構造函數來創建對象,上文(第14天)我們學到,與Java不同,創建Dart對象時可以省略構造函數之前的new關鍵字。同時,Dart語言除預設構造函數外,還有命名構造函數,重定向構造函數,常量構造函數和工廠構造函數等…… ...
  • 高精度(加減乘除) 高精度的核心思想就是利用數組去儲存大數,然後通過模擬手動計算的方式,來進行計算。 主要分三個模塊: 1.讀入數據並轉換為(int)類型儲存 高精度加法 核心思想:將每個位上的數字都+起來,如果大於10就進位。 核心代碼如下: c[i]+=a[i]+b[i];//兩數相加 c[i+ ...
  • Go的map是一種高效的數據結構,用於存儲鍵值對。其底層實現是一個哈希表(hash table),下麵是有關map底層實現的詳細介紹: 哈希表: map的底層實現是一個哈希表,也稱為散列表。哈希表是一個數組,其中每個元素被稱為"桶",用於存儲鍵值對。 哈希表的大小是可動態調整的,當存儲的鍵值對數量達 ...
  • 函數是一段代碼塊,只有在調用時才會運行。您可以將數據(稱為參數)傳遞給函數。 函數可以返回數據作為結果。 創建函數 在Python中,使用def關鍵字定義函數: 示例 def my_function(): print("Hello from a function") 調用函數 要調用函數,請使用函數 ...
  • Python流程式控制制是Python編程中非常重要的一部分,它用於控製程序的執行流程。Python提供了多種流程式控制制語句,包括if語句、while迴圈、for迴圈、break和continue語句等。這種流程式控制制在各個語言中都是大同小異的,如果你已經學過其他的語言,那麼這章節就可以直接跳過。 if語句 ...
  • 模板智能數組指針 1.管理任意類型的數組指針 2.釋放的時候自動刪除數組指針指向的記憶體 //模板智能數組指針 template<typename T> class AiArrayPtr { public: AiArrayPtr(T *pArray) { m_pAiPtr = pArray; m_bI ...
  • 通過前面13天的學習,對Dart基礎有了系統的熟悉,今天我們開始學習Dart類和對象,本文主要學習Dart類,包括類方法,構造器,對象類型,實例變數,隱性介面,類變數和類方法等…… ...
  • 【學習課程】:【【小白入門 通俗易懂】2021韓順平 一周學會Linux】 https://www.bilibili.com/video/BV1Sv411r7vd/?p=14&share_source=copy_web&vd_source=2c07d62293f5003c919b2df9b2e054 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...