「マクロ」カテゴリーアーカイブ

【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

【Cisco】SSHログインマクロ

Cisco機器に対し、SSHログインするTeraTermマクロを作成したので、ご紹介します。
また、複数台の機器に対し、連続でログ取得をするTeraTermマクロについてはこちらを参照のこと。
※今回紹介するマクロを改良すれば、YamahaやJuniper、Alaxalaなど、さまざまなNW機器ベンダ製品にも対応可能です。是非ご参考に。

動作としては、

Cisco機器(1台)へSSHログイン→特権モードへ移行→ログ保存開始→terminal length 0を投入

になります。

ぜひご参考に。

01_SSHログイン.ttl

;; SSH接続用Macro

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;    ログイン用パラメータ         ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    hostname = 'RT01'
    username = 'cisco'
    ipaddr = '192.168.1.1'
    sshpasswd = 'cisco'
    enablepasswd = 'cisco'


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;    ログ用パラメータ            ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    portnum = '22'
    logname = '01_SSH_login_'
    logdir = 'log'


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;    ログ保存用ディレクトリ作成    ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    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