Linux

Webサーバーのアクティブセッション数を確認するコマンド例

More than 3 years have passed since last update.

たまにやりたくなるアレのメモです。

コマンド

watch -d -n 1 "netstat -alpn | grep -E ':(80|443) ' | awk {'print $5'} | sed -e 's/\:[^.]*$//' | sort | uniq -c"

やっていること

watch -d -n 1 "COMMAND"

COMMAND を1秒毎に実行し、実行結果に変化があった場合は該当箇所をハイライト表示します。

  • -n … 指定した秒数ごとに COMMAND を実行します。
  • -d … 実行結果の差分をハイライト表示します。

netstat -alpn

すべてのネットワーク状態をポート付き&名前解決なしで表示します。

grep -E ':(80|443)'

80番と443番ポートの表示を抽出します。

awk {'print $5'}

5番目の列を表示します。

netstat -alpn の場合は、左端を1番めとして順に

  1. Proto
  2. Recv-Q
  3. Send-Q
  4. Local Address
  5. Foreign Address
  6. State
  7. PID/Program name

となるので、 Foreign Address (アクセス元)を表示しようとしています。

sed -e 's/:[^.]*$//'

アクセス元IPのポート番号部分を削除し、IPアドレスだけの形にしています。

sort

表示をソートします。

uniq -c

重複を除去し、出現回数を表示しています。