運維日常需快速掌握 CPU、記憶體、磁碟、網路、進程狀態。本文精選高頻監控命令,附互動操作與輸出解讀重點。
top # 預設 3 秒重繪
top -d 1 # 1 秒間隔
top -p PID # 監控指定 PID
top -u user # 監控指定用戶
互動熱鍵:
| 鍵 | 功能 |
|---|---|
| 1 | 切換單核/全部核心顯示 |
| P | 依 CPU% 排序 |
| M | 依記憶體% 排序 |
| T | 依時間排序 |
| c | 顯示完整命令列 |
| k | 終止進程 (輸入 PID/Signal) |
| r | 調整 nice 值 |
| f | 欄位選擇/排序 |
| W | 寫入 ~/.toprc 保存配置 |
| q | 離開 |
vmstat 1 10 # 每秒採樣 10 次
vmstat -n 1 # 單行重複輸出 (適合腳本)
關鍵欄位:
r 可運行進程數(> CPU 核心數表示擁擠)
b 不可中斷睡眠進程(通常為 I/O 等待)
si/so swap in/out(持續非零 = 記憶體壓力大)
bi/bo 區塊裝置讀/寫塊數
us/sy/id/wa/st CPU 用戶/系統/空閒/等待/偷取百分比
df -h # 人類可讀單位
df -i # inode 使用率
du -sh /path # 目錄總大小
du -h --max-depth=1 /path # 一層大小
free -h # 總計/已用/可用/緩衝/快取
cat /proc/meminfo # 完整記憶體統計
swapon -s # 交換分區狀態
ps -ef # 所有進程完整資訊
ps aux --sort=-%cpu | head # CPU 前 10
netstat -lntp # 監聽埠 (需 root 看 PID)
netstat -antp # 已建立連線
ss -lntp # 現代替代 netstat (更快)
iptables -L -n -v # 防火牆規則計數
uname -a # 核心/OS/CPU
cat /etc/issue # 發行版版本
cat /proc/cpuinfo # CPU 詳細
hostname # 主機名
lspci -tv # PCI 裝置
lsmod # 載入模組
env # 環境變數
uptime # 運行時間/負載
cat /proc/loadavg # 負載細節
mount | column -t # 掛載點
fdisk -l # 分區表
dmesg | grep -i error # 開機錯誤
w # 線上用戶
last # 登入日誌
cut -d: -f1 /etc/passwd # 所有用戶
crontab -l # 計劃任務
chkconfig --list # 服務狀態 (SysVinit)
systemctl list-unit-files --type=service # systemd 服務
rpm -qa # 安裝套件 (RPM 系)
dpkg -l # 安裝套件 (Deb 系)
建議將常用組合封裝為別名或腳本(如 sysinfo、perfcheck),提升排查效率。