Tera Termマクロ

Cisco機器にログインしてコマンド打ってログ取得するマクロを3分で書く

TeraTermマクロは作業を効率化させる事が目的であって、マクロを書く事が趣味でない限り楽をする必要があります。

ぼくは数年前からTeraTermマクロを機能ごとにファイルに分割してincludeさせる、という方式をとっていて、最近になってそれをttmlという名前でgithubへ公開するようになりました。1日かけて一生懸命マクロを書いている人にはttmlを使うように推奨していますが、いまひとつ反応が良くないので、ttmlの使い方について解説させてください。

用意するもの

最初にttmlをデスクトップにダウンロードしてください。zip形式なので、それを展開します。展開すると「ttml-master」というフォルダができあがるはずです。つぎに実行したいコマンドを書いたファイルを用意します。ファイル名はcisco.txtとでもしておきます。たとえば、次のような内容のファイルです。

このファイルを先ほど展開したttmlフォルダ直下にあるcmdというフォルダ内に保存してください。

コンソールログインしてログ取得するマクロを3分で書く

必要なのは次の情報です。

  • ログインするCisco機器のホスト名
  • ログイン、enableパスワード
  • シリアルコンソールのポート番号

template.ttlをコピーして編集する

ttmlフォルダ直下に「template.ttl」があるので、これをコピーして「console.ttl」という名前で保存します。コピーしたらこのファイルを編集してください。

修正内容1:ログインプロンプト

38行目でログイン後に表示されるプロンプトを設定します。ログイン後、既にenableモードに入っている可能性もあるので正規表現をつかって「>」と「#」のどちらでも対応できるようにしています。コンフィグモードへ入っている、という状況は想定していません。

修正内容2:ログイン処理

43~44行目で、シリアルポートの指定とコンソールログインするためのマクロを読み込んでいます。「comport = 3」のところは適宜修正し、43行目と44行目のコメントを外します。これでコンソールログインできます。

修正内容3:enableモードに入る

Cisco機器のコンフィグを表示させるためには、enableモードに入る必要があります。enableパスワードを設定している場合は50行目のコメントを外してパスワードを記述します。今回は初期化済みのCiscoルーターへログインするため50行目は無視しています。enableモードに入るためには52行目のコメントを外します。これでenableモードへ入ることができます。

修正内容4:コマンドファイルの指定

さきほど用意した「cisco.txt」を読み込むため、61行目のコメントを外してcisco.txtを指定します。併せて、64行目のコメントを外します。これで、cisco.txtを開く事が出来ます。

修正内容5:ログ取得

68行目のコメントを外してログファイル名を指定します。併せて70行目のコメントを外します。これでログ取得できます。

修正内容6:コマンド実行

修正内容4で指定したcisco.txtから1行読み出して送信するための処理です。待ち受けのためのプロンプトを77行目で指定します。今回はホスト名がRouterなので、76行目のおすすめ設定に従って設定しています。78行目のコメントを外すとコマンドを送信します。

なお、コマンドファイルに「terminal length 0」を書いていませんが、「–More–」を適切に処理するようになっているので、なくても大丈夫です。

「–More–」の処理方法については、次の記事で解説しています。

参考記事:TeraTermマクロで「–More–」を確実に処理する方法

実行してみます

慣れているせいもありますが、ぼくは1分ほどで修正を終えてマクロを実行しました。結果は次のようになります。

きちんと動いていますね。ログファイルも生成されてすべてのやり取りを記録しています。ログファイルは「ttml-master¥log」フォルダに日付と時刻入りで格納されています。

sshやtelnetでログインしたい場合は、45行目、46行目のコメントを外します。凝った処理でもしない限り、このようなマクロならば数分で作成できます。是非、活用してみてください。

いまいち良くわからない、もしくは改善案などありましたら、ここへのコメントかメールを頂けると嬉しいです。