2014年6月17日火曜日

【TeraTermマクロ】自動ログイン

 ・マクロ起動時に接続先を一覧から選択(外部ファイル参照)
 ・パスワード初回入力後、暗号化して外部ファイルへ保存
 ・ログイン後ifconfighostnameを実行
 ・su -rootになる(パスワードは暗号化して外部ファイルへ保存)

 ・ログ収集開始(C:\teratermlog\YYYYmmddホスト名.log


;=========================================================
;接続先ホストリストを取得 
;iplist.txt内に接続先IPを記載

strdim HOST 10 ;配列を10作成、iplist.txt内のIP数が10を超える場合はその数字に変更
i = 0
fileopen fhandle 'iplist.txt' 0 ;fileopen <file handle> <filename> <append flag(0ならファイルの先頭)> 
while 1 ;iplist.txtの内容を配列に格納していく
filereadln fhandle iplist
if result=1 then
break
endif
HOST[i] = iplist
i = i+1
endwhile
;=======================
;接続先ホスト選択
listbox '接続するホストを選択してください' '接続先選択' HOST
if result >= 0 then
HOSTADDR = HOST[result]
else
end
endif
;=========================================================
; ユーザ名設定
USERNAME = 'user'
;=========================================================
; パスワードファイル指定
PASSFILE = 'password.dat'
;=========================================================
; パスワード取得
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 '接続できませんでした、終了します' '接続エラー'
    end
endif

; 接続判定2(接続して10秒以内にプロンプトが表示されない場合もマクロ終了)
timeout = 10
wait '$' '#'
if result = 0 then
    messagebox '10秒間応答がありませんでした、終了します' '接続エラー'
    end
endif
;=========================================================
;ログイン後の処理
SUPASSFILE = 'supassfile.dat'
getpassword SUPASSFILE 'su -' SUPASS ;file name var
sendln 'ifconfig eth0 | grep "inet addr:"'
wait '$'
sendln 'hostname'
wait '$'
sendln 'su -'
wait 'パスワード:' 'Password:'
sendln SUPASS
wait '#'
;=========================================================
;ログ収集
LOGFILE = 'C:\teratermlogs\
getdate LOG_NAME '%Y%m%d_&h.log'
FULLPATH = LOGFILE
strconcat FULLPATH LOG_NAME
logopen FULLPATH 1 1
;=========================================================
;; マクロ終了
end

0 件のコメント:

コメントを投稿