・マクロ起動時に接続先を一覧から選択(外部ファイル参照)
・パスワード初回入力後、暗号化して外部ファイルへ保存
・ログイン後ifconfig・hostnameを実行
・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 件のコメント:
コメントを投稿