オープンソース・ソフトウエアによるシステム管理、監視 2

kSarをコマンド・ラインから利用してみる

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画像に変換している(クリックで拡大)

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る