2004.11.22 Monday
TeraTermマクロ:サンプルマクロ例(2)
イメージとしては、ローカルルータでTeraTermを起動しておき、8:30〓18:00の30分おきにR01〓R10のCPU使用率のログを取得する。ちなみにこのサンプルにおける各ルータへのログインは、一度コアのルータにログインし、コアルータのHOST定義を使用してR01〓R10にログインしています。
<メインマクロ(main.ttl)>
; main
logtime="08:30"
include "logfind.ttl"
logtime="09:00"
include "logfind.ttl"
logtime="09:30"
include "logfind.ttl"
logtime="10:00"
include "logfind.ttl"
logtime="10:30"
include "logfind.ttl"
logtime="11:00"
include "logfind.ttl"
logtime="11:30"
include "logfind.ttl"
logtime="12:00"
include "logfind.ttl"
logtime="12:30"
include "logfind.ttl"
logtime="13:00"
include "logfind.ttl"
logtime="13:30"
include "logfind.ttl"
logtime="14:00"
include "logfind.ttl"
logtime="14:30"
include "logfind.ttl"
logtime="15:00"
include "logfind.ttl"
logtime="15:30"
include "logfind.ttl"
logtime="16:00"
include "logfind.ttl"
logtime="16:30"
include "logfind.ttl"
logtime="17:00"
include "logfind.ttl"
logtime="17:30"
include "logfind.ttl"
logtime="18:00"
include "logfind.ttl"
goto main
end
<ログファイル設定用マクロ(logfind.ttl)>
; log timer
gettime jikan
strcopy jikan 1 5 jikoku
strcompare jikoku logtime
while result <> 0
pause 60
gettime jikan
strcopy jikan 1 5 jikoku
strcompare jikoku logtime
endwhile
;logfile open
filename = "d:\log\"
getdate date
strconcat filename date
gettime jikan
strcopy jikan 1 2 hour
strconcat filename "_"
strconcat filename hour
strconcat filename ".txt"
sendln "10.10.10.10"
wait "Password: "
sendln "pass"
wait "COREROUTER>"
send "!"
sendln jikan
sendln
logopen filename 1 0
timeout = 62
pause 10
include 'log.ttl'
;logfile close
pause 5
logclose
;end
fileopen fhandle filename 1
filewrite fhandle #13#10
filewrite fhandle 'end'#13#10
fileclose fhandle
exit
<ログ取得用マクロ(log.ttl)>
;ROUTER
routername = "R01"
call CPU
routername = "R02"
call CPU
routername = "R03"
call CPU
routername = "R04"
call CPU
routername = "R05"
call CPU
routername = "R06"
call CPU
routername = "R07"
call CPU
routername = "R08"
call CPU
routername = "R09"
call CPU
routername = "R10"
call CPU
sendln "q"
exit
;subroutine
:CPU
sendln routername
wait "Password: "
if result=0 then
return
endif
sendln "pass"
pause 1
sendln "sh proc cpu | in CPU uti"
sendln "!"
pause 2
sendln "q"
wait "COREROUTER>"
sendln
wait "COREROUTER>"
return
<メインマクロ(main.ttl)>
; main
logtime="08:30"
include "logfind.ttl"
logtime="09:00"
include "logfind.ttl"
logtime="09:30"
include "logfind.ttl"
logtime="10:00"
include "logfind.ttl"
logtime="10:30"
include "logfind.ttl"
logtime="11:00"
include "logfind.ttl"
logtime="11:30"
include "logfind.ttl"
logtime="12:00"
include "logfind.ttl"
logtime="12:30"
include "logfind.ttl"
logtime="13:00"
include "logfind.ttl"
logtime="13:30"
include "logfind.ttl"
logtime="14:00"
include "logfind.ttl"
logtime="14:30"
include "logfind.ttl"
logtime="15:00"
include "logfind.ttl"
logtime="15:30"
include "logfind.ttl"
logtime="16:00"
include "logfind.ttl"
logtime="16:30"
include "logfind.ttl"
logtime="17:00"
include "logfind.ttl"
logtime="17:30"
include "logfind.ttl"
logtime="18:00"
include "logfind.ttl"
goto main
end
<ログファイル設定用マクロ(logfind.ttl)>
; log timer
gettime jikan
strcopy jikan 1 5 jikoku
strcompare jikoku logtime
while result <> 0
pause 60
gettime jikan
strcopy jikan 1 5 jikoku
strcompare jikoku logtime
endwhile
;logfile open
filename = "d:\log\"
getdate date
strconcat filename date
gettime jikan
strcopy jikan 1 2 hour
strconcat filename "_"
strconcat filename hour
strconcat filename ".txt"
sendln "10.10.10.10"
wait "Password: "
sendln "pass"
wait "COREROUTER>"
send "!"
sendln jikan
sendln
logopen filename 1 0
timeout = 62
pause 10
include 'log.ttl'
;logfile close
pause 5
logclose
;end
fileopen fhandle filename 1
filewrite fhandle #13#10
filewrite fhandle 'end'#13#10
fileclose fhandle
exit
<ログ取得用マクロ(log.ttl)>
;ROUTER
routername = "R01"
call CPU
routername = "R02"
call CPU
routername = "R03"
call CPU
routername = "R04"
call CPU
routername = "R05"
call CPU
routername = "R06"
call CPU
routername = "R07"
call CPU
routername = "R08"
call CPU
routername = "R09"
call CPU
routername = "R10"
call CPU
sendln "q"
exit
;subroutine
:CPU
sendln routername
wait "Password: "
if result=0 then
return
endif
sendln "pass"
pause 1
sendln "sh proc cpu | in CPU uti"
sendln "!"
pause 2
sendln "q"
wait "COREROUTER>"
sendln
wait "COREROUTER>"
return