統計 Web 伺服器即時線上人數常用 netstat 解析 TCP 連線。本文比較兩種常見管線指令,並在 Red Hat Linux AS3 實測效能差異。
netstat -a | grep http | awk '{print $5}' | cut -d: -f1 | sort | uniq | wc -l | awk '{print $1 - 1}'
netstat -a:顯示所有連線(包含監聽埠),會嘗試反向解析 IP 為主機名,較慢。grep http:過濾 HTTP 服務(預設埠 80 會顯示為 http)。netstat -an | grep ":80 " | grep -i ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq | wc -l | awk '{print $1 - 1}'
netstat -an:-n 直接顯示數字 IP/埠,不做反向解析,速度顯著提升。grep ":80 ":精確匹配目的埠 80(注意尾部空格避免匹配 8080 等)。grep -i ESTABLISHED:僅統計已建立連線,排除 TIME_WAIT、LISTEN 等狀態,更精準反映活躍用戶。在 Red Hat Linux AS3 環境測試,方法二優於方法一:
grep -E ":80 |:443 ";若系統支援 ss 指令,ss -ant sport = :80 state established 效能更優。