監視系コマンドまとめ

サーバーの接続数を表示する

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

サーバーの接続状態を表示する

$ sudo watch -d -n 2 "netstat -tan | grep -E ':(80|443) ' | grep -E '(ESTABLISHED|LISTEN|TIME_WAIT)' | awk '{print \$6}' | sort | uniq -c"

WEB サーバーから MySQL への接続数を表示する

$ sudo watch -d -n 2 "netstat -tan | grep ':3306 ' | grep -E '(ESTABLISHED|LISTEN|TIME_WAIT)' | awk '{print \$6}' | sort | uniq -c"

MySQL への接続で TIME_WAIT が 30秒以上のものを表示する

$ sudo watch -d -n 2 "netstat -tano | grep ':3306 ' | grep -E ' \([3-5][0-9]' | awk '{print \$1}' | sort | uniq -c"

Googlebot の接続数を表示する

$ sudo watch -d -n 3 "netstat -alpn | grep -E '66.249.(6[469]|7[1379])' | awk '{print \$5}' | sed -e 's/\:[^.]*$//' | sort | uniq -c | sort -nk1 -r"
$ sudo watch -d -n 3 "netstat -alpn | grep -E '66.249.(6[469]|7[1379])' | awk '{print \$5}' | sed -e 's/\:[^.]*$//' | sort | uniq -c | sort -nk1 -r | awk '{sum+=\$1}END{print \"Goooglebot: \" sum}'"

サーバーのデータ転送量をみる

$ awk '$1=="eth0:" {printf "rx: %fMB tx: %fMB\n", $2/1024/1024, $10/1024/1024}' < /proc/net/dev
$ watch -d -n 3 "awk '\$1==\"eth0:\" {printf \"rx: %f MB tx: %f MB\n\", \$2/1024/1024, \$10/1024/1024}' < /proc/net/dev"