**システムの負荷状態をログファイルに出力するスクリプト [#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS