- - PR -
teratermマクロでCisco機器のhostname取得
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-03-25 21:01
はじめまして。
現在teratermのマクロで不特定多数のCisco機器のconfigを採取し、 機器別にログを作成するマクロを作っています。 ログのファイル名をhostname_yyyymmdd.txtにしたいのですが、hostnameの取得の 方法がわかりません。 Cisco機器にログインしている状態でteratermに表示されている router# の「router」部分をログファイル名のhostname部分を抜き出して使用したいです。 (cisco機器のhostname) わかる方、どうかご教授願います。 よろしくお願いします。 | ||||
|
投稿日時: 2009-03-26 01:18
バージョン4.61で追加された、gethostnameコマンドを使えばよいのでは? http://sourceforge.jp/ticket/browse.php?group_id=1412&tid=14248 | ||||
|
投稿日時: 2009-03-26 10:43
[/quote]
バージョン4.61で追加された、gethostnameコマンドを使えばよいのでは? http://sourceforge.jp/ticket/browse.php?group_id=1412&tid=14248 [/quote] レスありがとうございます。 gethostnameコマンドを使用すると何故かIPアドレスが取得されてしまいます。 telnetするときにIPアドレスのリストを参照しているのでそれが取得対象に なってしまっている感じがします。 gethostnameコマンドはどこからhostnameを取得しているんでしょうか?? | ||||
|
投稿日時: 2009-03-26 16:14
teratermを実行している環境でipアドレスからホスト名を引けるようにしてみるとか
| ||||
|
投稿日時: 2009-03-27 11:25
レスありがとうございます。
IPアドレスからホスト名を引けるようにするとは、具体的にどういう方法に なるんでしょうか? teratermの設定ではなくPC側にHostsファイルのようなものを用意する感じですか? | ||||
|
投稿日時: 2009-03-27 13:49
興味があったので、hostsを試してみました。
192.168.1.254 eagle をhostsに登録した後2種類のマクロを実行しました。 ;____↓ホスト名 connect 'eagle:23 /nossh' wait ':' sendln 'stringvalue' wait ':' sendln 'stringvalue' gethostname nodename ; messagebox nodename 'connected' ;表示は「eagle」 end ;____↓IPアドレス connect '192.168.1.254:23 /nossh' wait ':' sendln 'stringvalue' wait ':' sendln 'stringvalue' gethostname nodename ; messagebox nodename 'connected' ;表示は「192.168.1.254」 end ということで、connectのオペランドを変数メモリにコピーするようですね。 (14:25)hostsを戻して、もうひとパターンやってみました。 ;___↓変数定義 eagle='192.168.12.254:23 /nossh' connect eagle wait ':' sendln 'stringvalue' wait ':' sendln 'stringvalue' gethostname nodename ; messagebox nodename 'connected' ;表示は「192.168.1.254」 end 以上です。 _________________ _福田太郎_ [ メッセージ編集済み 編集者: たらお 編集日時 2009-03-27 14:28 ] | ||||
|
投稿日時: 2009-04-09 01:16
show runコマンドで表示されるhostnameを利用してみました。
ホスト名が"router"であれば、router.txt が作成されます。 connect '192.168.1.254:23 /nossh' wait 'Password:' sendln 'パスワード' wait sendln 'ena' wait 'Password:' sendln 'パスワード' sendln 'ter len 0' ;----------------↓ show runコマンドからホスト名の行だけ表示させる sendln 'sh run | inc hostname' wait 'hostname' recvln ; ;---------------↓↓---- ホスト名の桁数 strcopy inputstr 1 5 Host_Name strconcat filename Host_Name strconcat filename ".txt" ; sendln wait '#' ; logopen filename 1 0 wait '#' sendln 'sh run' wait 'end' pause 1 logclose ; sendln 'exit' |
1