Linux 系統管理-系統監控
top (查看當前進程實時的使用情況)
top指令可以查看當前進程實時的使用情況、CPU、RAM、I/O使用率等其他資訊
常用參數
-u:查看指定用戶運行的進程-p:查看特定進程的使用情況
交互模式下可使用的快捷鍵
q:退出c:運行的COMMAND會顯示絕對路徑k:系統會讓你選擇要kill 的進程編號,輸入完進程編號再按enter就能 kill 進程P:按照cpu 排序M:按照ram大小排序h:可以查看可用快捷鍵
顯示的資訊
| 名稱 | 定義 |
|---|---|
| PID | 進程 ID,是系統用來識別進程的唯一編號 |
| USER | 進程所屬的使用者 |
| PR | 進程的優先順序 |
| NI | 進程的 nice 值 |
| VIRT | 進程使用的虛擬記憶體(內存)大小 |
| RES | 進程使用的實際記憶體(內存)大小 |
| SHR | 進程共享的記憶體量 |
| S | 進程的狀態 |
| %CPU | 進程使用的 CPU 使用率 |
| %MEM | 進程使用的記憶體使用率 |
| TIME+ | 進程執行的總時間 |
| COMMAND | 進程的命令行 |
範例
- 查看root 運行的進程實時的使用情況
1
top -u root - 查看PID=5的進程實時的使用情況
1
top -p 5
history (查看用戶的cmd 使用紀錄)
例如可以在系統崩潰時,排查是哪個指令出問題,或是哪個指令誤刪了文件
每個用戶的歷史紀錄可以在
/home/用戶名/.bash_history 找到
如果想要重新使用指令,除了複製外,可以記住該指令的歷史編號
使用
! 歷史編號
系統就會運行該歷史編號的指令,就不用每次都找得很辛苦
df (磁碟分區的使用狀況)
df指令用來顯示磁碟分區的使用狀況。它會顯示每個磁碟分區的總空間、已使用空間和可用空間
常用參數
-h:容量大小以人類容易閱讀的格式輸出(最常用)-t:只顯示指定類型的檔案系統,如:df -t ext4-T:輸出同時也顯示磁碟的檔案系統-k:以 KB 為單位顯示輸出-m:以 MB 為單位顯示輸出-g:以 GB 為單位顯示輸出
顯示的資訊
| 名稱 | 定義 |
|---|---|
| Filesystem | 進程 ID,是系統用來識別進程的唯一編號 |
| Type | 進程 ID,是系統用來識別進程的唯一編號 |
| 1k-blocks | 進程 ID,是系統用來識別進程的唯一編號 |
| Used | 進程 ID,是系統用來識別進程的唯一編號 |
| Available | 進程 ID,是系統用來識別進程的唯一編號 |
| Use% | 進程 ID,是系統用來識別進程的唯一編號 |
| Mounted on | 進程 ID,是系統用來識別進程的唯一編號 |
範例
以人類容易閱讀的格式輸出
1
df -h顯示特定磁碟的使用情況
1
df /輸出同時也顯示磁碟的檔案系統
1
df -T顯示ext4檔案系統的使用情況
1
df -t ext4以GB為單位輸出
1
df -g
du(指定文件或目錄的大小)
du 指令用於顯示指定文件或目錄的大小
常用參數
-a:顯示所有文件,包含隱藏文件-h:以人類容易閱讀的格式輸出(最常用)-d N:只顯示目錄結構的 N 層。
範例
顯示當前目錄 與其子目錄的大小
1
du .只顯示當前目錄的大小
1
du -d 1 .
free(系統記憶體的使用狀況)
free 指令用來顯示系統記憶體的使用狀況
常用參數
-b:以 byte 為單位顯示輸出-k:以 KB 為單位顯示輸出-m:以 MB 為單位顯示輸出-g:以 GB 為單位顯示輸出-t:顯示記憶體跟系統虛擬記憶體的統計情況-s:設定刷新頻率,即時更新記憶體使用情況,如free -s 1每秒刷新
顯示資訊
| 名稱 | 定義 |
|---|---|
| total | 總記憶體大小 |
| used | 系統已使用的記憶體大小 |
| free | 系統可以被程序立即使用的記憶體大小 |
| shared | 多個進程共享的記憶體大小 |
| buffers/cache | 緩衝資料的記憶體大小/緩衝磁碟資料的記憶體大小 |
| available | 系統可以被程序立即使用的記憶體大小 + 緩衝資料的記憶體大小 |
| swap | 系統的虛擬記憶體大小 |
dmesg(系統啟動時的訊息)
dmesg 指令用於顯示系統啟動時的訊息
- 用於檢查系統啟動時是否有任何異常訊息。例如,如果系統啟動時出現錯誤訊息,可以使用 dmesg 指令來查看錯誤訊息,以便排除故障
範例
- 一次只顯示一頁
1
dmesg | more
iostat(系統磁碟 I/O 的統計資訊)
iostat 命令用於顯示系統磁碟 I/O 的統計資訊
常用參數
-d:顯示所有磁碟的統計資訊-k:以 KB 為單位顯示磁碟 I/O 量-m:以 MB 為單位顯示磁碟 I/O 量-s:指定統計間隔,單位為秒-t:指定要即時更新資訊幾次
顯示資訊
磁碟 讀取 I/O 量 寫入 I/O 量 平均讀取時間 平均寫入時間
範例
顯示所有磁碟的統計資訊,以秒為單位
1
iostat顯示所有磁碟的統計資訊,以 KB 為單位,每隔 5 秒顯示一次,共顯示 10 次:
1
iostat -d -k -s 5 -t 10
netstat(網路連線狀態和資訊)
netstat 指令用於顯示網路連線狀態和資訊
常用參數
-a:顯示所有連線,包括已啟動和已關閉的連線-v:顯示連線的詳細資料-r:顯示路由表-l:顯示已啟動的連線-t:顯示 TCP 連線-u:顯示 UDP 連線-n:使用ip表示連接,而不是用主機名稱
範例
查看路由表詳細資料
1
netstat -rnv查看所有連線,使用ip表示
1
netstat -na
/proc/cpuinfo
這個文件記錄了系統cpu的訊息,如:型號、製造商、主頻、緩存大小、超線程技術是否啟用等。
可以用此指令查看cat /proc/cpuinfo | more
/proc/meminfo
這個文件記錄了系統記憶體的訊息,如:總記憶體容量、可用記憶體容量、使用中記憶體容量、緩衝區記憶體容量、交換分區容量等
可以用此指令查看cat /proc/meminfo | more
重要的系統日誌目錄 (/var/log)
boot.log
開機或關機時,一些服務啟動或關閉的訊息
chronyd (NTP)
cron
紀錄crontab這個服務的內容
maillog
紀錄郵件的存取與往來
secure
紀錄登錄系統存取的文件
syslog
事件紀錄程序監控日誌,經常是系統出問題的訊息,Redhat 默認不生成這個日誌
message
紀錄開機時發生的錯誤