前回までで、Tera Termマクロの公式サイトなどをご紹介しました。
通常の解説であれば、『変数』だとか、『データ型』だとか、そういう解説の方にいくところですが、当サイトではすっ飛ばしてしまいましょう。
そういうものを学ぶのは、もっとTera Termマクロの事を好きになってからでいいと思います。
実際、そんなものを覚えなくても、ここまでの記事を読んでこられた方であれば、シンプルなCiscoルータへのログインマクロはもう書けるようになっているはずです。
難しい事を学ぶのは難しい人に任せて、さっさとマクロを作れるようになってしまった方が、仕事のためにも精神的にも非常にいい影響があります。
さて、シンプルなCiscoルータへのログインマクロを最初にお見せして、中身を解説しました。しかし、どうもログインするだけでは、モノ足りないと思いませんか?
では、今回は、少しパワーアップしてみたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
;/////////////////////////////////// ;Telnetで172.16.0.1のルータにログインし、 ;enableモードまで自動で移行します ;作者Feasible LAB. ;http://teraterm.feasible-lab.com/ ;/////////////////////////////////// connect '172.16.0.1:23 /nossh /T=1' wait 'Password:' sendln 'cisco' wait '>' sendln 'en' wait 'Password' sendln 'cisco' end |
こちらが、前回までに学習したシンプルなCiscoルータへのログインマクロです。
Telnet⇒ログイン⇒enableモードへ移行
ここまでをやってくれるマクロでした。
では、今回は、enableモードに移行した後、show runを表示させてみましょう。
マクロを作る前にやる事がありますね。
Tera Termマクロに行わせる『手順』を考えることです。
以下は、シンプルなマクロの詳細な手順でした。
- IPアドレスを投入してOKボタンを押し、telnet接続する(ここは一部省略)
- 画面にPassword:と表示されるのを待つ
- 画面にPassword:と表示される
- 画面にPassword:と表示されたのを目視確認する
- ログインパスワードをタイプする
- パスワードをタイプし終わったらEnterを押す
- 画面にログインできたことを示す『>』のプロンプトが表示されるのを待つ
- ログインできたことを示す『>』のプロンプトが表示される
- 『>』が表示されたのを目視確認する
- enableモードに移行するため『en』とタイプする
- enableモード移行のためのPassword:が表示されるのを待つ
- enableモード移行のためのPassword:が表示される
- enableパスワードをタイプする
- パスワードをタイプし終わったらEnterを押す
今回は15以降を考えていきます。
マクロに何をさせたいのかというと、
・enableモードに移行したことを確認する
・enableモードでterminal length 0コマンドを打つ(sh runを途切れず表示させるため)
・terminal length 0コマンドが投入できた事を確認する
・show runコマンドを打って、Configを表示する
ということになります。
これらを手順に落とし込むと、どうなるでしょうか。
- enableモードに移行した事を示す『#』が表示されるのを待つ
- enableモードに移行した事を示す『#』が表示される
- 『#』が表示されたことを目視確認する
- terminal length 0コマンドをタイプする
- terminal length 0コマンド投入後、改めて『#』が表示されるのを待つ
- 『#』が表示されたのを確認し、show runコマンドを投入する
こういう形になりますね。
それでは、これをマクロに落とし込んでいきましょう。
既に、知っている『コマンド』で続きが書けるはずです。
enableモードに移行した事を示す『#』が表示されるのを待つ
待つ=>waitですね。
待つ文字は”で囲むんでしたね。
‘#’
つまり
1 |
wait '#' |
になります。
terminal length 0コマンドをタイプする
タイプする=>sendlnですね。
sendlnする文字は”で囲みましょう。
‘terminal length 0’
つまり
1 |
sendln 'terminal length 0' |
です。
terminal length 0コマンド投入後、改めて『#』が表示されるのを待つ
これも待つ、なのでwaitですね。
1 |
wait '#' |
『#』が表示されたのを確認し、show runコマンドを投入する
最後にshow runを投入します。
あえて、「投入する」と書きましたが、「投入する」=「タイプ」して「Enter」ですね。
つまり、sendlnです。
1 |
sendln 'show run' |
今回のマクロを前回までのシンプルなマクロの続きに書いてみましょう。
マクロの最後に書いてある、『end』は、「ここでマクロが終わりですよ」という意味なので、その手前に書くようにしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
;/////////////////////////////////// ;Telnetで172.16.0.1のルータにログインし、 ;enableモードまで自動で移行します ;作者Feasible LAB. ;http://teraterm.feasible-lab.com/ ;/////////////////////////////////// connect '172.16.0.1:23 /nossh /T=1' wait 'Password:' sendln 'cisco' wait '>' sendln 'en' wait 'Password' sendln 'cisco' wait '#' sendln 'terminal length 0' wait '#' sendln 'show run' end |
上記のようになったはずです。
私の場合は、読みやすいように、コマンド文の前に半角スペースを入れたりしますが、特にいれずに下のように書いても問題ありません。
スペースを入れる場合は、必ず半角にしてください。全角はNGです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
;/////////////////////////////////// ;Telnetで172.16.0.1のルータにログインし、 ;enableモードまで自動で移行します ;作者Feasible LAB. ;http://teraterm.feasible-lab.com/ ;/////////////////////////////////// connect '172.16.0.1:23 /nossh /T=1' wait 'Password:' sendln 'cisco' wait '>' sendln 'en' wait 'Password' sendln 'cisco' wait '#' sendln 'terminal length 0' wait '#' sendln 'show run' end |
それでは、このテキストを.ttl形式で保存し、tera termで動かしてみましょう。
うまく動くでしょうか?
環境によってはうまく動かないときもあったりします。
それで正解です。
ちなみに私の環境では、5回に1回はshow runが失敗してしまいます。
その理由は次回見ていきましょう。