teraterm

TeraTermマクロで試験ログ取得

More than 5 years have passed since last update.

試験の自動化はかなりの手間がかかるが、

手動で試験する場合、試験毎のログ取得にも地味に時間がかかる。

ここではTeraTermのマクロを利用したお手軽なログ取得スクリプト例を紹介。

試験をやる際の稼働がぐっと減るのでおすすめ。

■用意するもの

・ログ取得対象のサーバ

・マクロを実行する操作用PC(サーバにSSH接続できること)

 →TeraTermとTeraTermMacroをインストールしておく

  ※TeraTermのバージョンは4.66以上

■マクロの内容

・自動SSHログイン

・ログ取得

※いろいろ試した結果、ログ取得には以下のSCP受信方法を使わせて頂きました。

参照:http://qiita.com/KurokoSin/items/b4d2d0a81c8d05f110ef


;************************************************************************************
;初期設定
;************************************************************************************

;===================================================================================
; IPアドレス、ID、パスワード設定
HOSTADDR = '192.168.1.1'
LOGIN_ID = 'root'
LOGIN_PASSWORD = 'password'
;===================================================================================

;===================================================================================
;ログインプロンプトチェック ※サーバにログインしたときのプロンプトと合わせる
PROOUT = '[root@test]#'
;===================================================================================

;===================================================================================
;ログを保存するパス
;remoteFile:サーバ側のログファイルパス
;localFile:ローカル(マクロ実行側)のログ保存パス
remoteFile = '/var/log/message'
localFile = 'C:\test\testlog'
;===================================================================================

;************************************************************************************
;自動SSHログイン
;************************************************************************************

COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND LOGIN_ID
strconcat COMMAND ' /passwd='
strconcat COMMAND LOGIN_PASSWORD

connect COMMAND

wait PROOUT
sendln ''

wait PROOUT
sendln ''

;************************************************************************************
;取得するログを初期化
;************************************************************************************

sendln ':> /var/log/message'

;************************************************************************************
;メッセージを表示 ※メッセージを表示している間にテスト実行 終わったら、OKボタンを押す
;************************************************************************************

messagebox 'Wait until the end of the test. Press After testing.'

;************************************************************************************
;ログをサーバから取得 
;************************************************************************************

;wait synchronized
filesearch localFile
if result then
filedelete localFile
endif

scprecv remoteFile localFile

mpause 1100
sizeBef = 0
:confirm_start
filestat localFile sizeNow
if sizeNow = sizeBef then
goto confirm_end
else
mpause 1100
endif
sizeBef = sizeNow
goto confirm_start
:confirm_end

;************************************************************************************
;SSH接続終了
;************************************************************************************

wait PROOUT
sendln 'exit'