0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Teraterm】SSH接続TTLマクロ

Posted at

使用方法

TeraTermでSSH接続を行うTTLマクロです。
基本的に接続毎にTTLマクロファイルを用意する想定です。
ホスト設定のみ編集することで使用できます。
初回起動時のみユーザ名やパスワードの入力が求められますが、次回以降は不要になります。
もしユーザ名やパスワードを変更した場合は、dataディレクトリ内のファイルを削除すればユーザ名やパスワードの入力が求められるようになります。

SSH接続TTLマクロ(ログファイルなし)

; カレントディレクトリパス取得
getdir DIR

; ホスト設定
HOSTADDR = 'XXX.XXX.XXX.XXX'

LOGINUSERFILENAME = 'username_'
strconcat LOGINUSERFILENAME HOSTADDR
LOGINPWFILENAME = 'password_'
strconcat LOGINPWFILENAME HOSTADDR
FILEEXTENSION = '.dat'
INIFILE = 'TERATERM.INI'

; ユーザ情報格納ディレクトリ
USERINFODIR1 = DIR
strconcat USERINFODIR1 '\data'
USERINFODIR2 = USERINFODIR1
strconcat USERINFODIR2 '¥'

; ユーザファイル
USERNAMEFILE = USERINFODIR2
strconcat USERNAMEFILE LOGINUSERFILENAME
strconcat USERNAMEFILE FILEEXTENSION
USERNAMEPWFILE = USERINFODIR2
strconcat USERNAMEPWFILE LOGINPWFILENAME
strconcat USERNAMEPWFILE FILEEXTENSION

; ユーザ情報格納ディレクトリチェック
foldersearch USERINFODIR1
if result = 0 then
    foldercreate USERINFODIR1
    if result <> 0 then
        ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
        strconcat ERRORCREATEDIR USERINFODIR1
        messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
        end
    endif
endif

; ユーザ名、パスワード取得
getpassword USERNAMEFILE LOGINUSERFILENAME LOGINUSER
getpassword USERNAMEPWFILE LOGINPWFILENAME LOGINPW

; 接続コマンド作成
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /auth=password /user='
strconcat COMMAND LOGINUSER
strconcat COMMAND ' /passwd='
strconcat COMMAND LOGINPW
strconcat COMMAND ' /F='
strconcat COMMAND INIFILE

; 接続実行
connect COMMAND
if result <> 2 then
    ERRORHOST = 'ホストに接続できませんでした。ホスト='
    strconcat ERRORHOST HOSTADDR
    messagebox ERRORHOST '接続エラー'
    end
endif

; 表示待ち
timeout = 10
wait LOGINUSER '@'
if result = 0 then
    disconnect
    end
endif

; マクロ終了
end

SSH接続TTLマクロ(ログファイルあり)

; カレントディレクトリパス取得
getdir DIR

; 日付取得
getdate TODAY '%Y%m%d'
getdate NOW '\%Y%m%d_%H%M%S'

; ホスト設定
HOSTADDR = 'XXX.XXX.XXX.XXX'

LOGINUSERFILENAME = 'username_'
strconcat LOGINUSERFILENAME HOSTADDR
LOGINPWFILENAME = 'password_'
strconcat LOGINPWFILENAME HOSTADDR
FILEEXTENSION = '.dat'
LOGEXTENSION = '.log'
INIFILE = 'TERATERM.INI'

; ユーザ情報格納ディレクトリ
USERINFODIR1 = DIR
strconcat USERINFODIR1 '\data'
USERINFODIR2 = USERINFODIR1
strconcat USERINFODIR2 '¥'

; ユーザファイル
USERNAMEFILE = USERINFODIR2
strconcat USERNAMEFILE LOGINUSERFILENAME
strconcat USERNAMEFILE FILEEXTENSION
USERNAMEPWFILE = USERINFODIR2
strconcat USERNAMEPWFILE LOGINPWFILENAME
strconcat USERNAMEPWFILE FILEEXTENSION

; ログ格納ディレクトリ
LOGDIR1 = DIR
strconcat LOGDIR1 '¥logs'
LOGDIR2 = LOGDIR1
strconcat LOGDIR2 '¥'
strconcat LOGDIR2 TODAY
LOGDIR3 = LOGDIR2
strconcat LOGDIR3 '¥'

; ユーザファイル
LOGFILE = LOGDIR3
strconcat LOGFILE NOW
strconcat LOGFILE LOGEXTENSION

; ユーザ情報格納ディレクトリチェック
foldersearch USERINFODIR1
if result = 0 then
    foldercreate USERINFODIR1
    if result <> 0 then
        ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
        strconcat ERRORCREATEDIR USERINFODIR1
        messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
        end
    endif
endif

; ログ格納ディレクトリチェック
foldersearch LOGDIR1
if result = 0 then
    foldercreate LOGDIR1
    if result <> 0 then
        ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
        strconcat ERRORCREATEDIR LOGDIR1
        messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
        end
    endif
endif

; ログ格納日付ディレクトリチェック
foldersearch LOGDIR2
if result = 0 then
    foldercreate LOGDIR2
    if result <> 0 then
        ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
        strconcat ERRORCREATEDIR LOGDIR2
        messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
        end
    endif
endif

; ユーザ名、パスワード取得
getpassword USERNAMEFILE LOGINUSERFILENAME LOGINUSER
getpassword USERNAMEPWFILE LOGINPWFILENAME LOGINPW

; 接続コマンド作成
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /auth=password /user='
strconcat COMMAND LOGINUSER
strconcat COMMAND ' /passwd='
strconcat COMMAND LOGINPW
strconcat COMMAND ' /F='
strconcat COMMAND INIFILE

; 接続実行
connect COMMAND
if result <> 2 then
    ERRORHOST = 'ホストに接続できませんでした。ホスト='
    strconcat ERRORHOST HOSTADDR
    messagebox ERRORHOST '接続エラー'
    end
endif

; ログ取得開始
logopen LOGFILE 1 1

; 表示待ち
timeout = 10
wait LOGINUSER '@'
if result = 0 then
    disconnect
    end
endif

; マクロ終了
end

参考元

Tera Term のススメ
TeraTerm自動ログ取得マクロ-ログ整理版(年月別)

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?