Systemwalker Operation Manager リファレンスマニュアル - UNIX/Windows(R)共通 -
|
目次
索引
|
16.5 スクリプトのデバッグ例
本節では、Systemwalkerスクリプトのデバッグ例として以下の2つの例を説明します。
- デバッグで使用するコマンドの組み込み例
- トレースレベルの変更の仕方の例
■デバッグで使用するコマンドの組み込み例
“デバッグで使用するコマンド”をスクリプト内に組み込んだ例を以下に示します。
例:引数で渡されたファイルを読み込むスクリプト
スクリプトファイル |
level
(注) |
出力内容 |
# トレースオープン
# 実運用時は"level 2"を削除のこと
set Trchwnd [sw_TcOpenTrace -level 2 /var/log/G001]
if {$Trchwnd < 0} {
puts stderr "Trace open err"
exit 1
}
# 起動ログ出力
sw_TcWriteTrace $Trchwnd "業務001 START"
# ファイル名取得
set filename [lindex $argv 0]
sw_TcWriteTrace -level 2 $Trchwnd "Input file name: $filename"
# 動作制御ファイルオープン
if {[catch {
set cid [open $filename r]
}]} {
# open のエラーをキャッチした場合
# エラーログ出力
sw_TcWriteTrace $Trchwnd "File open err (filename :$filename)"
sw_TcCloseTrace $Trchwnd
exit 1
}
sw_TcWriteTrace -level 2 $Trchwnd "File opened "
# ファイル読み込み
set rc [gets $cid buf]
if {$rc == -1} {
# ファイルが空のため読み込みバッファにデフォルト値を設定する
sw_TcWriteTrace -level 2 $Trchwnd "File empty "
set buf 100
}
sw_TcWriteTrace -level 2 $Trchwnd "Gets data: $buf"
close $cid
…
# 終了ログ出力
sw_TcWriteTrace $Trchwnd "業務001 END"
sw_TcCloseTrace $Trchwnd |
1
2
1
2
2
2
1
|
動作ログ
スクリプト内情報
(ルートチェック)
エラーログ
ルートチェック
ルートチェック
スクリプト内情報
(ルートチェック)
動作ログ
|
- 注)
- levelの欄は、トレースレベルを表します。
トレースレベルのデフォルトは1のため、1の場合はコマンド内での指定を省略しています。
■トレースレベルの変更の仕方の例
トレースレベルの指定は、Systemwalkerスクリプト内に記述するトレース拡張コマンドのオプションで行います。Systemwalker Operation Managerでの運用中にトレースレベルの変更が必要になった場合、スクリプト内を直接修正するのは困難なため、以下に示すような方法により、スクリプトを変更せずにトレースレベルを変更可能にしておくことができます。
- スクリプトの引数による指定
スクリプト起動時の引数によりトレースレベルを受け渡します。
例:第1引数がトレースレベルを表す場合【Windows版】
# 第1引数からトレースレベル取得
set trclevel [lindex $argv 0]
# 指定値チェック
if {$trclevel < 0 || $trclevel > 2} {
# 指定値エラー
puts stderr "trace level err :$trclevel"
exit 1
}
# トレースオープン
set Trchwnd [sw_TcOpenTrace -level $trclevel {c:\var\log\G001.trc}]
…
sw_TcCloseTrace $Trchwnd
exit 0 |
例:第1引数がトレースレベルを表す場合【UNIX版】
# 第1引数からトレースレベル取得
set trclevel [lindex $argv 0]
# 指定値チェック
if {$trclevel < 0 || $trclevel > 2} {
# 指定値エラー
puts stderr "trace level err :$trclevel"
exit 1
}
# トレースオープン
set Trchwnd [sw_TcOpenTrace -level $trclevel /var/log/G001.trc]
…
sw_TcCloseTrace $Trchwnd
exit 0 |
- 外部ファイルによる指定
トレースレベルを記述したファイルからトレースレベルを読み込むようにします。
- 例:
- トレースレベル定義ファイルc:\home\etc\trclevelにレベルが記述されている場合【Windows版】
# トレースレベル記述ファイルのオープン,読み込み,クローズ
if {[catch {
set cid [open {c:\home\etc\trclevel} r]
gets $cid trclevel
close $cid
}]} {
# トレースレベル記述ファイルのエラー
puts stderr "Can not read {c:\home\etc\trclevel}"
exit 1
}
# 指定値チェック
if {$trclevel < 0 || $trclevel > 2} {
# 指定値エラー
puts stderr "trace level err :$trclevel"
exit 1
}
# トレースオープン
set Trchwnd [sw_TcOpenTrace -level $trclevel {c:\var\log\G001.trc}]
…
sw_TcCloseTrace $Trchwnd
exit 0 |
- 例:
- トレースレベル定義ファイル“/home/etc/trclevel”にレベルが記述されている場合【UNIX版】
# トレースレベル記述ファイルのオープン,読み込み,クローズ
if {[catch {
set cid [open /home/etc/trclevel r]
gets $cid trclevel
close $cid
}]} {
# トレースレベル記述ファイルのエラー
puts stderr "Can not read /home/etc/trclevel"
exit 1
}
# 指定値チェック
if {$trclevel < 0 || $trclevel > 2} {
# 指定値エラー
puts stderr "trace level err :$trclevel"
exit 1
}
# トレースオープン
set Trchwnd [sw_TcOpenTrace -level $trclevel /var/log/G001.trc]
…
sw_TcCloseTrace $Trchwnd
exit 0 |
All Rights Reserved, Copyright (C) 富士通株式会社 1995-2007