TeraTermマクロ:Cisco機器 SSH接続してsh-run取得したらexit(sh-runマクロ)
更新日:2019/08/17
- マクロ内容を大きく変更(log出力フォルダ構成、誤操作防止、マクロダイアログ非表示 等)
- 本ページはWindows10でCisco機へSSH接続するためのTeraTermマクロを記載しています。
- 本業がプログラマでは無いため、レベル的には高く無いと思います。
- 実機での検証はしていますが、環境によって内容が変わることがあるため参考にする際は自己責任でお願いします。
- Cisco機器へのSSH接続とsh-runログ取得をするTeraTermマクロです。
検証に使用した機器
- Ciscoルータ:CISCO892-K9 (IOS-Version 15.2(4)M3)
- 検証用PC:Window10 (TeraTerm Version 4.100)
マクロファイル(.ttl)の置き場
フォルダ(任意)
※本ページのマクロファイルは、どこへ置いても動作するため指定無し。
ファイル名
※本ページのマクロ内容を「任意の名前.ttl」として格納してください。
ログ保存名および保存フォルダ
ログ保存場所
C:\teraterm\log
ログ保存名
HOSTNAME_YYYYMMDD_HHMMSS_sh-run.log
※「HOSTNAME」はマクロファイル内で指定。
TeraTermマクロの内容
マクロファイル(.ttl)
sh-run_Cisco-RT_HOSTNAME_ssh.ttl
;# ■概要
;# ・Cisco機器へSSH接続し、show run取得後にTeratermを閉じます。
;#
;# ・ログ出力場所
;# C:\teraterm\log
;#
;# ・ログ名
;# \HOSTNAME_YYYYMMDD_HHMMSS.log
;#
;# ■接続情報の設定(環境に合わせて修正)
HOSTS_IP = '192.168.0.1'
HOSTNAME = 'hostname'
LOG_USER = 'login-user'
LOG_PASS = 'login-pass'
ENA_PASS = 'enable-pass'
SHOW_COM = 'show running-config'
;# ~~~~以下は修正不要です。~~~~
;# ■変数等の作成
;## ログ保存先指定
LOG_PATH = 'C:\teraterm'
LOG_FILE = LOG_PATH
strconcat LOG_FILE '\log'
;## ログファイル名の設定
getdate DATETIME '_%Y%m%d_%H%M%S_sh-run.log'
FULLPATH = LOG_FILE
strconcat FULLPATH '\'
strconcat FULLPATH HOSTNAME
strconcat FULLPATH DATETIME
;## プロンプトの作成
PP_CISCO = HOSTNAME
strconcat PP_CISCO '#'
;## SSH接続コマンド作成
COMMAND = HOSTS_IP
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND LOG_USER
strconcat COMMAND ' /passwd='
strconcat COMMAND LOG_PASS
;#↓設定ファイルを機器毎に分ける場合の設定ファイル指定(今回はOFF)
;strconcat COMMAND ' /F=C:\teraterm\ini\test.ini'
;#↓SSHでの初回接続確認をOFFにするオプション(今回はOFF)
;strconcat COMMAND ' /nosecuritywarning'
;# ■マクロの実行~終了
;## 「MACRO ダイアログ」ウィンドウを非表示 ※デバッグ時はOFFにする。
show -1
;## ログ保存先のフォルダが無ければ作成。
foldersearch LOG_FILE
if result = 0 then
foldercreate LOG_FILE
if result <> 0 then
messagebox 'Folder Error'
end
endif
endif
;## SSH接続
connect COMMAND
;## キーボード入力抑制(誤操作防止)開始
enablekeyb 0
;## 接続判定(接続が出来たか確認)
if result <> 2 then
messagebox 'Connection Error'
end
endif
;## ログの取得開始
loginfo logfilename
if result <> -1 then
logclose
logopen FULLPATH 0 1
else
logopen FULLPATH 0 1
endif
sendln ''
;## 「Tera Term: ログ」ウィンドウを非表示
showtt 6
;## enable, ter len 0
wait '>'
sendln 'enable'
wait 'Password:'
sendln ENA_PASS
wait PP_CISCO
sendln ''
sendln 'terminal length 0'
mpause 200
sendln 'terminal exec prompt timestamp'
mpause 200
;## showコマンドの取得
sendln ''
wait PP_CISCO
mpause 200
sendln SHOW_COM
pause 3 ;#show tech等の長いコマンドはpauseを長くする
sendln ''
sendln ''
;# コマンド終了後にTeraTermを閉じる
sendln ''
wait PP_CISCO
mpause 500
sendln 'exit'
unlink
以上です。