【Teratermマクロ】複数のYAMAHAルータへコマンドを投げ、結果をログ出力する

Network

VPNで繋がっている各拠点のルーターへコマンドを実行し、その結果をログ出力するマクロを作ってみた

スポンサーリンク

初回作成時


テキストで作成し拡張子をttlとして保存します。拡張子を変更すると、ファイルが使えなくなる可能性があります。とメッセージが出ますが気にせず変更でOK。

変更後そのままでは開けないので【プログラムから開く】で以下を指定します。
C:\Program Files (x86)\teraterm\ttpmacro.exe ※人により若干異なります。

一度紐づけてしまえば以後ttlファイルはTeratermマクロとして開かれます。

Teratermマクロ基礎


取り合えず最低限以下だけ抑えとけば何とかなります。

  • ;“ セミコロンでコメントアウト。誰が見ても分かり易くする為ガンガン入れるべき
  • sendln“ コマンドと改行を送信する。結果はシステム変数inputstrに格納される
  • wait“ 待ち処理。入れないと応答前に進んでしまい思うような結果が得られないので必須

上記以外にも勿論多様なコマンドが有りますが、やってくうちに覚えるので割愛

本家マニュアル

Teratermマクロ.ttl


以下コピペで利用可能。こちらはルータ毎のダウンしているトンネルの一覧を取得するコマンドを投げ、その結果をデスクトップにログ出力しています。

; ルータIP配列 IPアドレスは適宜変更してください。
strdim arrServerIP 8
arrServerIP[0] = '192.168.100.1'
arrServerIP[1] = '192.168.101.1'
arrServerIP[2] = '192.168.102.1'
arrServerIP[3] = '192.168.103.1'
arrServerIP[4] = '192.168.104.1'
arrServerIP[5] = '192.168.105.1'
arrServerIP[6] = '192.168.106.1'
arrServerIP[7] = '192.168.107.1'

; ルータ配列分ループ
for Cnt 0 7

  ; ログイン処理
  cmd = ''
  strconcat cmd arrServerIP[Cnt]
  strconcat cmd ':23 /nossh /T=1'
  connect cmd 
  timeout = 2
  
  ; 文字コードをShift_JISへ変更
  callmenu 54010
  callmenu 54110

  ; 通常ログイン パスワードは適宜変更してください。
  wait 'Password:'
  sendln 'testpassword'

  ; 管理者ログイン パスワードは適宜変更してください。
  wait '>'
  sendln 'administrator'
  wait 'Password:'
  sendln 'testpassword'

  ; ログ設定 デスクトップへ保存
  getspecialfolder strLogFile 'Desktop'
  changedir strLogFile
  strFileName = ''
  strconcat strFileName arrServerIP[Cnt]
  strconcat strFileName '.log'

  ; ログ開始---------------------------
  logopen strFileName  0 1 1 1 0 0

  wait '#'
  ; ルータへ投げるCMD  お好みで
  sendln 'show status tunnel down'
  wait '#'
  
  ; ログ終了-----------------------------
  logclose
  
  ; consoleはそのままで接続断
  closett

next

注意事項としてTTXKanjiMenuが入って無いと、Shift_JISへ変更が出来ません。
(TeraTerm 4.53(2007.8.8)以上でインストール時に手動チェック必要)
その場合はTeraTermの再セットアップを行いましょう。

コメント