前回までで、logopenの使い方を覚えました。
logopenは、Tera Termの内容をテキストファイルなどに記録して、保存するためのものでしたね。
この章の始めで、logcloseについても触れましたが、今までは、logcloseを使わなくてもうまくログがとれていました。
これは、ルータからexitする事によって、Tera Termも同時に終了されて、半ば強制的にloggingも終了されていたためにうまく行っていたことが理由です。ですが、本筋では、logcloseをちゃんと書いてあげて、loggingを終了させてあげる方がいいのです。
うまく行くんだったら別にlogcloseを使わなくてもいいよね、と思ってしまいそうなところなんですが、logcloseをちゃんと書く癖をつけておかないと、あとあと困った事になります。
今回は、その困った事を再現して、logcloseの使い方を学んでみたいと思います。
前回までに作成したマクロは以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
connect '172.16.0.1:23 /nossh /T=1' changedir 'C:\Users\Shun\Desktop' logopen 'show_run.log' 0 0 wait 'Password:' sendln 'cisco' wait '>' pause 3 sendln 'en' wait 'Password' pause 3 sendln 'cisco' wait '#' pause 3 sendln 'terminal length 0' wait '#' pause 3 sendln 'show run' pause 5 sendln '' wait '#' sendln 'exit' end |
このマクロで、show runをとった後に、さらにshow logをとってみたいと思います。
そして、show logの保存ファイル名は、’show_log.log’ としましょう。
show logをとり始めるのは、
1 |
sendln 'exit' |
の手前からがいいでしょう。
コマンドの部分は非常に簡単ですね。
19行目から22行目までをコピーして、
1 |
senldn 'show run' |
を
1 |
sendln 'show log' |
に変更したものを、
1 |
sendln 'exit' |
の手前に貼付けるだけです。
貼付けたら、こうなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
connect '172.16.0.1:23 /nossh /T=1' changedir 'C:\Users\Shun\Desktop' logopen 'show_run.log' 0 0 wait 'Password:' sendln 'cisco' wait '>' pause 3 sendln 'en' wait 'Password' pause 3 sendln 'cisco' wait '#' pause 3 sendln 'terminal length 0' wait '#' pause 3 sendln 'show run' pause 5 sendln '' wait '#' sendln 'show log' pause 5 sendln '' wait '#' sendln 'exit' end |
この辺りは、もう余裕だと思います。
当サイトのターゲット通りの方であれば、知識ゼロから、もう既に30行近いマクロを書くまでになってしまったということです。すばらしいですね。感慨深いです。
さらに、ここに’show log’用のlogopenを追加してやる必要がありますね。
今回は、既に最初にchangedirでカレントディレクトリをデスクトップに移動してあるので、’show log’用のlogopenをする前に、changedirをする必要はありません。
では、
1 |
logopen 'show_log.log' 0 0 |
を下記の通り追加しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
connect '172.16.0.1:23 /nossh /T=1' changedir 'C:\Users\Shun\Desktop' logopen 'show_run.log' 0 0 wait 'Password:' sendln 'cisco' wait '>' pause 3 sendln 'en' wait 'Password' pause 3 sendln 'cisco' wait '#' pause 3 sendln 'terminal length 0' wait '#' pause 3 sendln 'show run' pause 5 sendln '' wait '#' logopen 'show_log.log' 0 0 sendln 'show log' pause 5 sendln '' wait '#' sendln 'exit' end |
これで、デスクトップにshow runとshow logのlogファイルが出来上がるはずですが・・・
冒頭で触れたように、この書き方だと失敗します。
走らせてみると、デスクトップ上には’show_run.log’しか存在しないですよね?
なぜ失敗するかというと、Tera Termは、一度に二つのログファイルを開く事ができないからです。
ですので、二つの個別ログファイルを作りたい場合には、必ず先に開いたログファイルをlogcloseで閉じてあげなければならないのです。
じゃあ、どうすればいいかというと、非常に簡単。
1 |
logopen 'show_log.log' 0 0 |
の前に、
1 |
logclose |
を挟んでやればいいだけです。
マクロで書くと以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
connect '172.16.0.1:23 /nossh /T=1' changedir 'C:\Users\Shun\Desktop' logopen 'show_run.log' 0 0 wait 'Password:' sendln 'cisco' wait '>' pause 3 sendln 'en' wait 'Password' pause 3 sendln 'cisco' wait '#' pause 3 sendln 'terminal length 0' wait '#' pause 3 sendln 'show run' pause 5 sendln '' wait '#' logclose logopen 'show_log.log' 0 0 sendln 'show log' pause 5 sendln '' wait '#' sendln 'exit' end |
もう、あなたには簡単すぎて、へそで茶が沸きそうなのではないでしょうか。
あなたは、わずか数日のうちに、下手したらわずか数時間のうちに、二つのログを自動で取得し、保存できるようになってしまいました。
「マクロこわいマクロこわい」と怯えていたのが嘘のようですね。
この辺りのマクロが開発現場でささっと即席で作れるようになってくると、非常に重宝される存在になれる可能性が高いです。
確かに汎用性高いマクロを作っておく事も大事ですが、その場その場に合わせたフィット性の高いマクロを速攻で作れることも、非常に高い現場力、技術力と言えます。
では、次回からは、いよいよ「変数」を使っていく事にしましょう。
といっても、スピード感は相変わらずの「のんびり」で行きますので、不安に思わなくても大丈夫です。
ピンバック: 5.1. パスワード変更に対応してみよう | ゼロから始めるTera Termマクロ
ピンバック: ログをデスクトップに保存します | ゼロから始めるTera Termマクロ