Teratermマクロでssh接続を自動化する


概要

サーバやネットワーク機器にssh接続する際にログインユーザとパスワードを入力するのが面倒なためTeratermのマクロ機能によって自動化する。プロンプトは、機器によって変更できるようにしています。

仕様

マクロと同じ階層に「logs」フォルダが作成される。
ログファイルは、「20211114195355_server91.txt」のようなファイル名になる。

ソースコード

;Teraterm ver: 4.105
;SSH接続をしてログを取得するマクロ
;踏み台サーバ無しで単独で動作する

;SSH接続先情報
HOSTNAME = 'server01'
IPADDR = '192.168.10.22'
USERNAME = 'root'
PASSWORD = 'P@ssw0rd'
;ENABLE_PASSWORD = 'cisco'

;プロンプトの定義
Prompt1 = '$'
Prompt2 = ':'
Prompt3 = '#'
Prompt4 = '>'

;ログフォルダの作成
Getdir LOGDIR
Strconcat LOGDIR '\'
Strconcat LOGDIR 'logs'
Foldercreate LOGDIR

;時刻取得
Getdate NOW '%Y%m%d%H%M%S'
Getdate NOW2 '%Y/%m/%d-%H:%M:%S'

;ログファイル名の定義
Strconcat LOGDIR '\'
Strconcat LOGDIR NOW
Strconcat LOGDIR '_'
Strconcat LOGDIR HOSTNAME
Strconcat LOGDIR '.txt'

;SSH接続
CMD = IPADDR
Strconcat CMD ':22 /ssh /2 /auth=password /user='
Strconcat CMD USERNAME
Strconcat CMD ' /passwd='
Strconcat CMD PASSWORD
Connect CMD

;SSH接続に失敗したときの処理
If result <> 2 then
	Messagebox 'It could not be connected.' 'Connection Error'
	End
Endif

;ログメッセージのヘッダー
LOGMSG1 = 'HOSTNAME:'
Strconcat LOGMSG1 HOSTNAME
Strconcat LOGMSG1 '\n'
Strspecial LOGMSG1

LOGMSG2 = 'IPADDR:'
Strconcat LOGMSG2 IPADDR
Strconcat LOGMSG2 '\n'
Strspecial LOGMSG2

LOGMSG3 = 'TIMESTAMP:'
Strconcat LOGMSG3 NOW2
Strconcat LOGMSG3 '\n'
Strspecial LOGMSG3

;ログ取得開始
Logopen LOGDIR 0 0
Logwrite '=============================='#13#10
Logwrite LOGMSG1
Logwrite LOGMSG2
Logwrite LOGMSG3
Logwrite '=============================='#13#10

;Waitregex Prompt1 Prompt2 Prompt3 Prompt4
;Sendln ENABLE_PASSWORD
Waitregex Prompt1 Prompt2 Prompt3 Prompt4