
■ TeraTermマクロ
ちょっとした作業を自動化するために、PowerShellでTeraTermを起動してマクロを実行させようとしました。
PowerShellのコマンドは、こんな感じです。

# TeraTermを起動してマクロを実行します。
Start-Process `
-FilePath "C:¥Program Files¥teraterm¥ttermpro.exe" `
-ArgumentList "D:¥監視¥script¥teraTarmMacroTTL.ttl" `
-Wait
実行するマクロです。

connect ' /I 10.250.987.245:23 /nossh /T=1'
wait 'Login:'
sendln 'root'
wait 'Password:'
sendln 'password'
wait 'testSV#'
logopen 'D:¥監視¥log¥teraTarmMacroLog.log' 0 0
sendln '**************'
wait 'testSV#'
logclose
sendln 'exit'
あるサーバにTelnetで接続してコマンド(上記では'**************')を実行し、その結果をログファイル(D:¥監視¥log¥teraTarmMacroLog.log)に書き出そうとしています。
■ 無効なホスト
んで、実際に実行したところTeraTermは起動するのですが、マクロが実行されずに「無効なホスト」とメッセージが表示されて終了してしまいます。

マクロの内容が間違えているのかと思ったのですが、TeraTermを手動で起動してマクロを実行すると正常に動作します。
なお、TeraTermのバージョンは4.82です。

■ 解決
うっかりしていたのですが、マクロを実行させる場合はttermpro.exeを使ったらダメなのでした。
正解は、ttpmacro.exeでしたね。
# TeraTermを起動してマクロを実行します。
Start-Process `
-FilePath "C:¥Program Files¥teraterm¥ttpmacro.exe" `
-ArgumentList "D:¥監視¥script¥teraTarmMacroTTL.ttl" `
-Wait
って感じに修正したら、動いてくれました。
■ 後書き
随分前にも書いた気がしますが、システムの死活監視のために自分でゴリゴリと処理を作っています。監視用のサーバーに処理を登録して一定の間隔でスケジュール実行し、エラーを検出した場合はシステム管理者(まぁ、私ですが)にメールを送信する仕組みです。
最近のシステムは障害発生時の対応機能が充実しているので、導入時にきちんと設定しておけば放っといても良いと思いがちですが、完璧ではありません。
良くあるのが、障害発生時に待機系に自動的に切り替わるタイプのシステムで、待機系に切り替わったのに誰も気づかず後で大事になるということです。
そういったトラブルを防ぐためには、結局は人間が監視して対応する必要があるので、PowerShellでゴリゴリと監視処理を作って自動化しました。これなら、監視用のPowerShellが実行されている事を確認するだけで良いので、手間が少なくなります。
エンジニアが考える効率化って、大抵はツールを作って自動化って流れになる気がします。
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end —
スポンサードリンク


