**システムの負荷状態をログファイルに出力するスクリプト [#d67a4cdd]
uptime、vmstatの結果をログファイルに出力するスクリプト。~
無限ループを使用して取得するため、プロセスを強制終了しない限り1秒毎にログを出力し続ける。
**使い方 [#p6241008]
以下の行にてログファイルの出力先を指定する。
LOGFILE="/home/system/logs/status_"$TODAY".log"
**コード [#x852a8a7]
#!/bin/sh
# ------------------------
# System Status Loging Script
# ------------------------
# Version : 1.0
# date : 2007/06/19
# Version : 1.1
# date : 2008/05/07
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
# Set
TODAY=`date +%Y%m%d`
TODAY=`date +%Y%m%d-%H%M%S`
LOGFILE="/home/system/logs/status_"$TODAY".log"
# Exec
HEAD="Date,LA(1min),Proc(wait),Proc(sleep),MEM(swap),Mem(phy),IO(wait),Proc(httpd)"
test $LOGFILE || echo $HEAD > $LOGFILE
while true
do
DATE=`date +%Y/%m/%d\ %H:%M:%S`
# load avarage / 1min
UPTIME=`uptime | awk '{print $10}' | sed "s/\,//g"`
VMSTAT=`vmstat | grep -v proc | grep -v swpd | awk '{printf "%s,%s,% s\n",$1,$2,$15 }'`
echo $DATE,$UPTIME,$VMSTAT >> $LOGFILE
# vmstat: Proc(wait),Proc(sleep),MEM(swap),Mem(phy),IO(wait)
VMSTAT=`vmstat | grep -v proc | grep -v swpd | awk '{printf "%s,%s,%s,%s,%s\n",$1,$2,$3,$4,$15 }'`
# apache process count
PROC1=`ps xa | grep http | grep apache | wc -l`
echo $DATE,$UPTIME,$VMSTAT,$PROC1 >> $LOGFILE
sleep 1
done
exit 0
# EOF