Cisco機器に対し、SSHログイン+連続ログ取得するTeraTermマクロを作成したので、ご紹介します。
SSHログイン用のTeraTermマクロはこちらを参照。
今回は、SSHログイン用マクロの改良版になります。
動作としては、
Cisco機器(1台)へSSHログイン→特権モードへ移行→ログ保存開始→terminal length 0を投入→マクロ内に記載したコマンドを実行&ログ取得
になります。
マクロのファイル内に、あらかじめ取得したいコマンドを記載しておく必要はありますが、特定のログを何度も取得する場合は効果有りかと思います。
ぜひご参考に。
02_連続ログ取得マクロ(コマンドリスト無).ttl
;; 連続ログ取得Macro(コマンドリスト無)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ログイン用パラメータ ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
hostname = 'RT01'
username = 'cisco'
ipaddr = '192.168.1.1'
sshpasswd = 'cisco'
enablepasswd = 'cisco'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ログ用パラメータ ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
portnum = '22'
logname = '02_log_'
logdir = 'log'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ログ取得コマンド ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cmdidx = 4 ;【必須】取得するコマンド数を指定
strdim cmdarray cmdidx
cmdarray[0] = 'sh ip interface brief' ;配列のインデックスは ”0” から開始
cmdarray[1] = 'sh interface'
cmdarray[2] = 'sh ip route'
cmdarray[3] = 'sh run'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ログ保存用ディレクトリ作成 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
getdir CRNTDIR
cmd = 'cmd /c mkdir '
Strconcat cmd '"'
Strconcat cmd CRNTDIR
Strconcat cmd '¥'
Strconcat cmd logdir
Strconcat cmd '"'
exec cmd "HIDE"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SSHログイン ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
msg = ipaddr
Strconcat msg ':portnum /ssh /auth=password /user='
Strconcat msg username
Strconcat msg ' /passwd='
Strconcat msg sshpasswd
Strconcat msg inputstr
Connect msg
If result <> 2 then
Strconcat logfile ipaddr
Strconcat logfile '.error'
Filecreate ERRORFILE logfile
Fileclose ERRORFILE
Closett
Return
Endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ログファイル用現在時刻取得 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Getdate Str_Getdate
Strcopy Str_Getdate 1 4 Str_Year
Strcopy Str_Getdate 6 2 Str_Mon
Strcopy Str_Getdate 9 2 Str_Day
Gettime Str_Gettime
Strcopy Str_Gettime 1 2 Str_Hour
Strcopy Str_Gettime 4 2 Str_Min
Strcopy Str_Gettime 7 2 Str_Sec
Strconcat nowtime '_'
Strconcat nowtime Str_Year
Strconcat nowtime Str_Mon
Strconcat nowtime Str_Day
Strconcat nowtime Str_Hour
Strconcat nowtime Str_Min
Strconcat nowtime Str_Sec
Strconcat nowtime '.txt'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ログ保存開始 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Strconcat logname hostname
Strconcat logname nowtime
getdir FILEPATH
Strconcat FILEPATH '¥'
Strconcat FILEPATH logdir
Changedir FILEPATH
Strconcat FILEPATH '¥'
Strconcat FILEPATH logname
Logopen FILEPATH 1 1
Logwrite '****************************************'#13#10
Logwrite 'Hostname: '
Logwrite hostname
Logwrite #13#10
Logwrite 'IP Address: '
Logwrite ipaddr
Logwrite #13#10
Logwrite 'Execution time: '
Str_Get = Str_Getdate
Strconcat Str_Get ' '
Strconcat Str_Get Str_Gettime
Logwrite Str_Get
Logwrite #13#10
Logwrite '****************************************'#13#10
Logwrite #13#10
Logwrite #13#10
Sendln ''
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; [Cisco]特権モードへ移行 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Wait '#' ']$' ']#' '>'
If result = 4 then
Sendln 'enable'
Wait 'assword:'
Sendln enablepasswd
Wait '#'
Sendln 'terminal length 0'
Wait '#'
Endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 連続ログ取得(コマンドリスト無);
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
for i 0 cmdidx - 1
Sendln cmdarray[i]
Wait '>' '#'
Sendln ''
Wait '>' '#'
Sendln ''
Wait '>' '#'
Sendln ''
Mpause 100
next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; マクロの終了 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
closett
end