WEBサーバの過負荷を調べようと思って組んだシェルスクリプトを公開。
60秒で1ループして150回(2時間30分)分計測してテキストに吐き出します。
ポートは80と3306,プロセスはhttpdに関してセッションの数を吐き出しています。
ま、使う人は少ないでしょうけど(笑)
#!/bin/sh
scan_port=.80|.3306
scan_process=httpdscandate=`date “+%Y%m%d”`
scandate=”./$scandate”
touch $scandatefor i in `jot 150 0 149`
do
echo “//——————————————-” >> $scandate
date “+%Y/%m/%d %H:%M:%S” | tee -a $scandate
touch tmp ; netstat -na | egrep “$scan_port” | tee -a tmp
tmp_portcount=`cat tmp | wc -l`
echo “Port TOTAL Count: $tmp_portcount” >> $scandate
tmp_portcount=`grep ESTABLISHED tmp | grep 80 | wc -l`
echo “Port ESTABLISHED Count: $tmp_portcount” >> $scandate
tmp_portcount=`grep TIME_WAIT tmp | grep 80 | wc -l`
echo “Port TIME_WAIT Count: $tmp_portcount” >> $scandate
tmp_portcount=`grep FIN_WAIT_2 tmp | grep 80 | wc -l`
echo “Port FIN_WAIT_2 Count: $tmp_portcount” >> $scandate
rm -rf tmp
tmp_processcount=`ps ax | grep $scan_process | wc -l`
echo “Process($scan_process)Count: $tmp_processcount” >> $scandate
echo ” ” >> $scandate
vmstat -z | tee -a $scandate
echo ” ” >> $scandate
netstat -m | tee -a $scandate
echo ” ” >> $scandate
echo ” ” >> $scandatesleep 60
printf “%02x\n” $i
done
今回紹介するのはポケットリファレンス。手元にあると何かと便利ですね。
[rakuten]001:9784774142234[/rakuten]