概要
TeraTermマクロの自動ログインサンプル
TeraTermマクロ自動ログイン
TeraTerm実行ファイルとinifile、keyfile、log、passwordは同一フォルダにまとめとく
&
変数はTTLにまとめるー
;-----------------------------------------------------------
; 変数定義
;-----------------------------------------------------------
;; 実行ディレクトリ移動
getdir BASEDIR
setdir BASEDIR
;; 各種ディレクトパスメイン変数定義
getdir INIDIR
getdir LOGDIR
getdir KEYDIR
getdir PASSWORDDIR
;; INI変数
INIFILE = 'TERATERM.INI'
strconcat INIDIR '\inifile\'
strconcat INIDIR INIFILE
INIFILE_PATH = INIDIR
;; LOG変数
getdate LOGFILE '&h_%Y%m%d_%H%M%S.log'
strconcat LOGDIR '\log\'
strconcat LOGDIR LOGFILE
LOGFILE_PATH = LOGDIR
;; KEY変数
KEYFILE = '公開鍵を指定する(ある場合)'
strconcat KEYDIR '\keyfile\'
strconcat KEYDIR KEYFILE
KEY_PATH = KEYDIR
;; PASSWORD変数
PASSWORDFILE = '公開鍵を指定する(ある場合)'
strconcat PASSWORDDIR '\password\'
strconcat PASSWORDDIR PASSWORDFILE
PASSWORDDIR_PATH = PASSWORDDIR
;; 接続報ホスト/ユーザ名設定
HOSTADDR = 'IPアドレスorホスト名指定'
PORT = '22'
ROOTNAME = 'root'
ROOTPASS = 'rootパスワード'
LOGINNAME = 'ログインユーザ名'
LOGINPASS = 'ログインユーザパスワード'
;-----------------------------------------------------------
; SSHログイン処理
;-----------------------------------------------------------
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORT
;;通常パスワード
strconcat COMMAND ' /ssh /2 /auth=password /user='
;;チャレンジレスポンス
;;strconcat COMMAND ' /ssh /2 /auth=challenge /user='
;;公開鍵
;;strconcat COMMAND ' /ssh /2 /auth=publickey /user='
;;strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND LOGINNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND LOGINPASS
strconcat COMMAND ' /F='
strconcat COMMAND INIFILE_PATH
;;公開鍵ファイルパス
;;strconcat COMMAND ' /keyfile='
;;strconcat COMMAND KEY_PATH
connect COMMAND
;-----------------------------------------------------------
; ログ定義
;-----------------------------------------------------------
;; INIファイルで自動Teratermログの情報を取得する
Loginfo NOW_LOGFILE
;; Resultの値が-1の場合、ログは記録されていない
if result <> -1 Then
;一度、ログの記録を停止する
LogClose
;先ほどまで取得していたログを新しいログ名でコピーする
Filecopy NOW_LOGFILE NOW_LOGFILE
;取得していたログファイルを削除する
Filedelete NOW_LOGFILE
endif
Logopen LOGFILE_PATH 0 1 1 1
;-----------------------------------------------------------
; タイムアウト処理
;-----------------------------------------------------------
timeout = 5
wait ']$' ']#'
if result = 0 then
disconnect
end
endif
;-----------------------------------------------------------
; SSHログイン後処理
;-----------------------------------------------------------
;; ホスト名表示
sendln 'uname -n'
;; ユーザチェック
wait ']$' ']#'
if result = 1 then
sendln 'su - '
wait ':'
sendln ROOTPASS
wait '#'
sendln 'date ; id'
sendln ''
elseif result = 2 then
sendln ''
endif
;; マクロ終了
end
こんな感じでOK?
コメント