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」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。