- PR -

teratermマクロでCisco機器のhostname取得

1
投稿者投稿内容
masastar
会議室デビュー日: 2009/03/25
投稿数: 3
投稿日時: 2009-03-25 21:01
はじめまして。

現在teratermのマクロで不特定多数のCisco機器のconfigを採取し、
機器別にログを作成するマクロを作っています。
ログのファイル名をhostname_yyyymmdd.txtにしたいのですが、hostnameの取得の
方法がわかりません。

Cisco機器にログインしている状態でteratermに表示されている

router#

の「router」部分をログファイル名のhostname部分を抜き出して使用したいです。
(cisco機器のhostname)

わかる方、どうかご教授願います。
よろしくお願いします。
dodo
ベテラン
会議室デビュー日: 2004/05/12
投稿数: 99
お住まい・勤務地: 東京都渋谷区
投稿日時: 2009-03-26 01:18
引用:

masastarさんの書き込み (2009-03-25 21:01) より:

ログのファイル名をhostname_yyyymmdd.txtにしたいのですが、hostnameの取得の
方法がわかりません。



バージョン4.61で追加された、gethostnameコマンドを使えばよいのでは?

http://sourceforge.jp/ticket/browse.php?group_id=1412&tid=14248
masastar
会議室デビュー日: 2009/03/25
投稿数: 3
投稿日時: 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を取得しているんでしょうか??


progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2009-03-26 16:14
teratermを実行している環境でipアドレスからホスト名を引けるようにしてみるとか
masastar
会議室デビュー日: 2009/03/25
投稿数: 3
投稿日時: 2009-03-27 11:25
レスありがとうございます。

IPアドレスからホスト名を引けるようにするとは、具体的にどういう方法に
なるんでしょうか?
teratermの設定ではなくPC側にHostsファイルのようなものを用意する感じですか?
たらお
大ベテラン
会議室デビュー日: 2006/12/25
投稿数: 206
お住まい・勤務地: 東京・永代通り
投稿日時: 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 ]
kall
会議室デビュー日: 2009/04/09
投稿数: 1
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)