プログラミング

【TeraTerm】ログ出力付き接続マクロ

TeraTermのログ出力付き接続マクロを紹介します。

; 基本情報
HOSTNAME = 'エックスサーバー1'		; ★識別名 (C:\TEMP\log\識別名 とフォルダを作成するため注意)
HOSTIP = '接続先のIPアドレス'		; ★接続先のIPアドレス 例)127.0.0.1
USERNAME = 'ユーザー名を入れる'		; ★接続ユーザー名
PASSWORD = ''						; 今回は使用しません

; ログ保存先を設定する
; デフォルトでは C:\TEMP\log\識別名 に作成する
dirroot = 'C:\TEMP'					; ログ保存先のルート
dirsub1 = 'log'						; ログ保存先のサブディレクトリ
; ログ保存先のサブディレクトリを調整したい場合
; dirsub1 = 'log\XSERVER'

; ログ保存先の作成
foldercreate dirroot
strconcat dirroot '\'
strconcat dirroot dirsub1
foldercreate dirroot
strconcat dirroot '\'
strconcat dirroot HOSTNAME
foldercreate dirroot

; ログに接続情報を書き出す
getdate logfile '%Y%m%d-%H%M%S.log'
strinsert logfile 1 '_'
strinsert logfile 1 USERNAME
strinsert logfile 1 '_'
strinsert logfile 1 HOSTNAME
makepath log_name dirroot logfile

; パスワード入力画面の作成
MESSAGE = '識別名 : '
strconcat MESSAGE HOSTIP
strconcat MESSAGE ' / ユーザー名 : '
strconcat MESSAGE USERNAME
passwordbox MESSAGE 'パスワードを入力してください'

PASSWORD = inputstr
strcompare PASSWORD ''
if result=0 then
	messagebox 'パスワードが未入力のため終了します'
	end
endif

COMMAND = HOSTIP
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

connect COMMAND

if result <> 2 then
	messagebox '接続できませんでした'
	end
endif

Loginfo NOW_LOGFILE

If result <> -1 then
	LogClose
	
	Filecopy NOW_LOGFILE log_name
	Filedelete NOW_LOGFILE
endif

logopen log_name 0 1 0 1 1

sendln 'hostname'
wait '$' '#'

sendln 'date'
wait '$' '#'

end

-プログラミング
-,