TeraTermマクロ:Cisco機器コンソール接続してログ取得の自動開始(出力Dirは指定する)


TeraTermマクロ:Cisco機器コンソール接続してログ取得の自動開始(出力Dirは指定する)

  • 本ページはWindows10でCisco機へコンソール接続するためのTeraTermマクロを記載しています。
  • 本業がプログラマでは無いため、レベル的には高く無いと思います。
  • 実機での検証はしていますが、環境によって内容が変わることがあるため参考にする際は自己責任でお願いします。
  • Cisco機器へのコンソール接続とログ取得をするTeraTermマクロです。
  • ログはマクロファイル内で指定したフォルダへ出力します。

検証に使用した機器

  • Ciscoルータ:CISCO892-K9 (IOS-Version 15.2(4)M3)
  • 検証用PC:Window10 (TeraTerm Version 4.100)
  • 汎用HUB:NEC IX2005のSW-HUBポートを使用

検証構成

CISCO892-K9 --- 汎用HUB --- Window10 PC

ログ保存名および保存フォルダ

ログ保存場所
マクロファイル内で指定したフォルダへ出力します。

ログ保存名
ログ名の確認ボックスが表示されるので、ログ名を入力します。
※ログ保存名は「入力内容_YYYYMMDD_hhmmss.log」
※そのままEnterでもOK。その場合は「Console_YYYYMMDD_hhmmss.log」

TeraTermマクロの内容

COMxx_Cisco_ConsoleLogin-logopen_Log保存(指定Dir).ttl
;### Console接続情報の設定 ###
;# 接続情報の設定(環境に合わせて修正してください)
COM_PORT = '3'
LOGIN_ID = 'admin'
LOGIN_PW = 'log-pass'
ENABL_PW = 'en-pass'
LOG_FILE = 'C:\teraterm'


;# ~~~~以下は修正不要です。~~~~

;### Log保存先・LogNameの設定 ###
;# Log保存先 = <LOG_FILE>で事前に指定
;# LogName   = [BOXが出るので入力]_YYYYMMDD_hhmmss.log
getdate DATETIME '_%Y%m%d_%H%M%S.log'
inputbox 'LogNameを入れてください※省略してEnterでも可'  'LogName' 'Console'
FULLPATH = LOG_FILE
strconcat FULLPATH '\'
strconcat FULLPATH inputstr
strconcat FULLPATH DATETIME

;### コンソール接続 ###
COMMAND = '/C=' 
strconcat COMMAND COM_PORT 

connect COMMAND


;### Logの取得開始 ###
loginfo logfilename
if result <> -1 then   ;# Logが取得中か未取得か確認
   logclose
   logopen FULLPATH 0 1   ;# 取得中→Log停止して再度Log取得を開始
else
   logopen FULLPATH 0 1   ;# 未取得→Log取得を開始
endif
sendln ''
pause 1

;### Login、enable、ter len 0 ###
;# Console接続後、プロンプトを見て動作を変えます。
;# Login後、既に"#"の場合にはLogopenのみ。
do
    wait 'Username:' '>' '#'
    if result == 0 then         ;# 0 = 何も表示されない場合
        end
    elseif result == 1 then     ;# 1 = [Username:]が表示された場合
        sendln LOGIN_ID
        wait 'Password:' 
        sendln LOGIN_PW
        wait '>'
        sendln 'enable' 
        wait 'Password:' 
        sendln ENABL_PW
    elseif result == 2 then     ;# 2 = [>]が表示された場合
        sendln 'enable' 
        wait 'Password:' 
        sendln ENABL_PW
    endif
loop while result == 3          ;# 3 =[#]が表示されたらLoopを抜ける

sendln 'terminal length 0'
sendln ''
sendln ''

以上です。