今回、踏み台・ログを取得するネットワーク機器はCisco製を想定してます。
しかし、機器によっては応答が異なる場合が稀にありますので、うまく動作しない場合があります。
その場合は随時修正をお願いします。
■取得したログ
保存する場所 :c:\temp\“指定した各フォルダ”
ログファイル名の定義:“ホスト名”-runninng-config_”日付”.log
■踏み台にする機器
IPアドレス :192.168.0.1
ホスト名 :fumidai-l3-rt01
■ログ取得の対象機器
一覧ファイル :hostlist.txt
IPアドレス :192.168.1.254,192.168.1.253,192.168.2.254,192.168.3.254
ホスト名 :tokyo-hoge01,tokyo-hoge02,osaka-hoge02,fukuoka-hoge03
取得するログのコマンド:show running-config
hostlist.txt
※hostlist.txtの最終行には、必ず空改行等を入れないで下さい。
teratermがデータが続くと判断して自動終了せずに、エラーで終わってしまいます。
東京
tokyo-hoge01
192.168.1.254
東京
tokyo-hoge02
192.168.1.253
大阪
osaka-hoge02
192.168.2.254
福岡
fukuoka-hoge03
192.168.3.254 |
|
cisco_show-running.ttl
;ユーザ名の指定
USRNAME=’admin’
;パスワードの設定
PASSWD1=’password1′
PASSWD2=’password2′
;踏み台とするネットワーク機器へtelnet
connect ‘192.168.0.1:23 /nossh’
;踏み台をサーバとする場合は
;connect ‘192.168.0.1:22 /ssh /auth=passwd /user=ユーザ名 /passwd=パスワード‘
wait ‘Username:’
sendln ‘admin’
wait ‘Password:’
sendln PASSWD1
wait ‘fumidai-l3-rt01>’
sendln ‘enable’
wait ‘Password:’
sendln PASSWD1
wait ‘fumidai-l3-rt01#’
;ホストリストデータを読み込み
fileopen infp ‘hostlist.txt’ 0
if infp = -1 goto owari
:loop
;ログ保存場所を指定
logname=’c:\temp\’
filereadln infp inbuf
if result goto fclose
;ログファイル名を指定
strconcat logname inbuf
strconcat logname ‘\’
filereadln infp inbuf
if result goto fclose
;ホスト名をユーザモードと特権モードを使い分ける
hostnm=inbuf
hostnm2=inbuf
strconcat hostnm2 ‘#’
;ログファイル名に挿入する日付フォーマットを指定
getdate datestr
gettime timestr
strconcat logname hostnm
strconcat logname ‘-show running-config_’
strconcat logname datestr
strconcat logname ‘-‘
strcopy timestr 1 2 wkstr
strconcat logname wkstr
strcopy timestr 4 2 wkstr
strconcat logname wkstr
strcopy timestr 7 2 wkstr
strconcat logname wkstr
strconcat logname ‘.log’
strconcat hostnm ‘>’
filereadln infp inbuf
if result goto fclose
addres=inbuf
;機器へtelnetを開始
sendln ‘telnet ‘addres
wait ‘Username:’
sendln usrnm
wait ‘Password:’
sendln PASSWD2
wait hostnm
;特権モードに移行
sendln ‘enable’
wait ‘Password:’
sendln PASSWD2
;ログの取得を開始
wait hostnm2
sendln ‘terminal length 0’
wait hostnm2
logopen logname 0 0
sendln ”
wait hostnm2
sendln ‘show runninng-config’
wait hostnm2
logclose
sendln ‘terminal length 24’
wait hostnm2
sendln ‘exit’
wait ‘fumidai-l3-rt01#’
“loop”の場所に戻ります
goto loop
;終了処理
:fclose
fileclose infp
sendln ‘exit’
:owari
end |
|