LoginSignup
0
2

SSH接続と操作ログ記録を自動化するteratermマクロテンプレート

Posted at

sshを自動化したかったのと、コンソール(画面)の内容をテキストで勝手に保存されておいてほしかったので、マクロテンプレートを作成しました。
コードの冒頭5箇所に値を設定すれば、あとはコピペで使えるようにしてあります。

参考

参考にしたのは以下のページです。

マクロ実装

コードをコピペして「====」で囲まれている部分(HOSTADDR,PORTNUMBER,USERNAME,PASSWORD,LOG_DIR)を設定すればそのまま使用できます。
LOG_DIRに指定した出力先へttl_user_20240401-103059.logといった名前のログファイルが生成されます。

ssh認証方式がパスワード認証である場合を想定して作成してあります。
パスワード認証以外の認証方法が必要な場合、コードを使う前に編集する必要があります。

サーバログイン(ssh接続成功)後に自動化したい処理がある場合、コード中盤の;コマンド送信処理 ここからの下に記入してください。良く使うディレクトリに移動したり、シェル実行をしたりすることも可能です。

ssh接続.ttl
;=====================================================================
; 接続情報を設定する
HOSTADDR = '127.0.0.1'
PORTNUMBER = '10000'
USERNAME = 'user'
PASSWORD = 'password'
; ログ出力先を指定する。末尾に\は不要
LOG_DIR = 'C:\Users\user\Documents'
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNUMBER
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND
wait USERNAME

; コマンド送信処理 ここから
; ここに自動化したい初期処理を記入
;cd /opt

; コマンド送信処理 ここまで

; 日時を取得
gettime CURRENT_TIME "%Y%m%d-%H%M%S"
; ログファイル名生成とパス結合
sprintf2 FILE_NAME '%s\ttl_%s_%s.log' LOG_DIR USERNAME CURRENT_TIME

loginfo logfilename
if result == -1 then
   ; ログ取得開始
   logopen FILE_NAME 0 1 0 1 1
else
   ; ログ取得中であるため一度クローズしてからログ取得開始
   logclose
   logopen FILE_NAME 0 1 0 1 1
endif

end

自動化する内容やテンプレート化に向けて改良を重ねて今の形に落ち着きました。
地味に面倒だった作業を自動化できてすっきりした気持ちです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2