「連続ログ取得」カテゴリーアーカイブ

【cisco】連続ログ取得マクロ(コマンドリスト無)

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