GUIによる効率的なシステム管理、監視
 2010年12月8日(水)
      
kSarをコマンド・ラインから利用してみる
kSarは、コマンド・ライン・ベースによる実行も可能です。以下は、sarコマンドの結果のテキスト・ファイルをロードし、グラフの画像データを出力するkSarのコマンド・ラインでの利用例です。
# LC_ALL=C java -jar [kSarのパス]/kSar.jar \ -input “file://[テキストファイルのパス]” \ -outoutJPG [JEPGファイル保存ファイル名] (実際には一行)
これにより、テキスト・ファイルをグラフの画像(上記例ではJPEG形式)に変換できます。このため、スクリプトなどでバッチ処理を行うことが可能となります。以下は、kSarとsarコマンドを使って、sarコマンドで得られたバイナリ・データから、テキスト・ファイルとグラフのJPEG画像データを生成するスクリプトの例です。
sarバイナリ・データからグラフのJPEG画像を生成するkSar2jpg.shスクリプト
#!/bin/sh
# Put kSar.jar into /usr/local/kSar-x.x.x/ before using this script.
# This script creates a sar text output and jpgs from a sar binary file.
# The sar binary file is required to use this script.
# Reference:
#  - Binary: sar -A 1 -o /var/log/sarA1.log
#  - Text:   sar -A -f /var/log/sarA1.log > /var/log/sarA1.txt
#  - JPG:    java -jar kSar.jar \
#                 -input "file:///var/log/sarA1.txt" \
#                 -outputJPG /var/log/sar_result/sarA1.XXX.jpg 
Usage(){
 echo "Usage: $0 binaryfile textfile startime endtime "
 echo "e.g. : $0 binaryfile textfile"
 echo "e.g. : $0 binaryfile textfile 09:00:00 17:30:00"; exit 1
}
kSarPath(){
 echo "kSar.jar not found."; exit 1
}
export LANG=C
JAR=/usr/local/kSar-5.0.6/kSar.jar
BIN=$1
TXT=$2
START=$3
END=$4
DIR=${TXT}_jpgs_${START}_${END}
[ -f $JAR ] || kSarPath
[ -e $BIN ] || Usage
[ -z $BIN ] && Usage
[ -z $TXT ] && Usage
JPG=${DIR}/$(basename ${TXT})
if [ "$START" != "" -a "$END" = "" ]; then
 Usage
fi
[ -d $DIR ] || mkdir -p $DIR
echo "Now converting a sar binary file to a text file..."
if [ "$START" = "" -a "$END" = "" ]; then
 LC_ALL=C sar -A -f $BIN                   > $TXT \
  || (rm -rf $DIR; Usage)
else
 LC_ALL=C sar -A -f $BIN -s $START -e $END > $TXT \
  || (rm -rf $DIR; Usage)
fi
echo "Now converting a sar txt file to jpg files..."
 LC_ALL=C java -jar $JAR -input "file://${TXT}" -outputJPG ${JPG} \
  || exit 1
exit 0
このスクリプトは、引数にsarコマンドで得られたバイナリ・データ、出力したいテキスト・ファイル名を指定します。例えば、
- バイナリ・データ : /root/sarA1.bin
- 出力したいテキスト・ファイル名 : /root/sarA1.txt
とすると、以下のように指定します。
# ./kSar2jpg.sh /root/sarA1.bin /root/sarA1.txt
出力される画像データは、テキスト・データと同じディレクトリ配下の「/root/sarA1.txt_jpg__」ディレクトリに保存されます。また、特定の期間のみ、例えば、朝の9時0分から夕方の17時30分までのデータを抽出したい場合は、以下のように指定します。
# ./kSar2jpg.sh /root/sarA1.bin /root/sarA1.txt 09:00:00 17:30:00
この場合は、画像データが、/root/sarA1.txt_jpg_[開始時刻]_[終了時刻]ディレクトリに保存されます。下図は、kSar2jpg.shの実行の様子です。sarコマンドのバイナリ・データ、/root/sarA1.binを読み込んで、朝9時0分から夕方17時30分までのテキスト・データ、/root/sarA1.txtとグラフのJPG画像が得られていることが分かります。
| 図11: kSar2jpg.shスクリプトの実行の様子。過去の履歴が記録されたバイナリ・データから、朝9時~夕方17時30までのデータを抽出してグラフのJPEG画像に変換している(クリックで拡大) | 
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
   
  











