TeraTerm(マクロ自動ログイン)

スポンサーリンク

概要

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?

BlogTeraTerm
スポンサーリンク
インフラエンジニア|パイナップル星人 ブログ

コメント

タイトルとURLをコピーしました