システムの負荷状態をログファイルに出力するスクリプト

uptime、vmstatの結果をログファイルに出力するスクリプト。
無限ループを使用して取得するため、プロセスを強制終了しない限り1秒毎にログを出力し続ける。

使い方

以下の行にてログファイルの出力先を指定する。

LOGFILE="/home/system/logs/status_"$TODAY".log"

コード

#!/bin/sh
# ------------------------
# System Status Loging Script
# ------------------------
# 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-%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: 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
Last-modified: 2008-05-07 (水) 17:54:55 (3848d)