Teratermマクロサンプル(ログイン~コマンド実行~ログアウト)

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

サンプル(パスワード認証)

;================================================= 
; COMMENT1    : 
; COMMENT2    : 
;================================================= 
;;接続先IPアドレス
HOSTADDR = 'xxx.xxx.xxx.xxx'
 
;;接続先ユーザー名
USERNAME = 'hoge'
 
;;パスワード初期化
PASSWORD = 'hoge'
 
;;パスワードファイルのパス
PASSFILE = 'hoge_pass.txt'
 
;;日付取得 年月日時間
getdate DATE '%Y%m%d_%H%M%S'
 
;;ログファイル名設定 ファイル名に日時を文字列連結で追加
LOGNAME = "C:\Users\hoge\Documents\log_"
strconcat LOGNAME DATE
strconcat LOGNAME ".log"
 
;;パスワード取得
getpassword PASSFILE USERNAME PASSWORD
 
;;接続コマンド組み立て
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=PASSWORD /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
 
;;接続
connect COMMAND
 
;;接続判定1 接続失敗したら終了
if result <> 2 then
    messagebox 'Could not connect' 'Connection Error'
    end
endif
 
;;接続判定2 10秒待ってプロンプトが出なければタイムアウトで終了
timeout = 10
wait '$' '#'
if result = 0 then
    disconnect
    end
endif   
 
;;マクロを隠す
show -1
 
;;自動でログ取得を設定している場合は終了
logclose
pause 2
;;ログ取得開始 漢字、改行コード変換して書き込み ファイル存在時上書き
logopen LOGNAME 0 0
 
;;ログ見出し追加、改行
logwrite '######TEST'#13#10
 
;;ログウィンドウを隠す
showtt 6
 
;;実行コマンド例 シングルクオーテーションの中でシングルを使うときはダブルにする
sendln 'pwd > /home/hoge/pwd_`date -d "1 month ago" +%Y%m`.txt'
sendln 'ls > /home/hoge/ls_`date -d "1 month ago" +%Y%m`.txt'
 
pause 1
 
sendln 'exit'
 
;;改行追加
logwrite #13#10
 
;;ログを閉じる
logclose
 
;;マクロ終了
end

サンプル(鍵認証)

;================================================= 
; COMMENT1    : 
; COMMENT2    : 
;================================================= 
;;接続先IPアドレス
HOSTADDR = 'xxx.xxx.xxx.xxx'
 
;;接続先ユーザー名
USERNAME = 'hoge'
 
;;鍵ファイル名 ppkに変換した鍵が使えた
KEY_FILE=key.ppk'
 
;;初期化
MACRO_DIR=''
KEY_FILE_PATH=''
 
;;マクロがあるパスを取得
getdir MACRO_DIR
 
;; 鍵ファイルパス生成 マクロがあるディレクトリに「\」とパスワードファイル名を連結
strconcat KEY_FILE_PATH MACRO_DIR
strconcat KEY_FILE_PATH '\'
strconcat KEY_FILE_PATH KEY_FILE
 
;;日付取得 年月日時間 何度も実行する場合ログファイル名が重ならないように時間まで入れている
getdate DATE '%Y%m%d_%H%M%S'
 
;;ログファイル名設定 ファイル名に日時を文字列連結で追加
LOGNAME = "C:\Users\hoge\Documents\log_"
strconcat LOGNAME DATE
strconcat LOGNAME ".log"
 
;;接続コマンド組み立て ここが公開鍵認証設定になっているので注意
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE_PATH
 
;;接続
connect COMMAND
 
;;接続判定1 接続失敗したら終了
if result <> 2 then
    messagebox 'Could not connect' 'Connection Error'
    end
endif
 
;;接続判定2 10秒待ってプロンプトが出なければタイムアウトで終了
timeout = 10
wait '$' '#'
if result = 0 then
    disconnect
    end
endif   
 
;;マクロを隠す
show -1
 
;;自動ログ取得をセットしている場合は終了させる
logclose
pause 2
 
;;ログ取得開始 漢字、改行コード変換して書き込み ファイル存在時上書き
logopen LOGNAME 0 0
 
;;ログ見出し追加、改行
logwrite '######TEST'#13#10
 
;;ログウィンドウを隠す
showtt 6
 
;;実行コマンド例 シングルクオーテーションの中でシングルを使うときはダブルにする
sendln 'pwd > /home/hoge/pwd_`date -d "1 month ago" +%Y%m`.txt'
sendln 'ls > /home/hoge/ls_`date -d "1 month ago" +%Y%m`.txt'
 
pause 1
 
sendln 'exit'
 
;;改行追加
logwrite #13#10
 
;;ログを閉じる
logclose
 
;;マクロ終了
end