TeraTermMacro: ログフォルダーを自動作成する

TeraTermを使用して Ciscoスイッチにリモートアクセスすることが多いのですが、あとからタイプしたコマンドは何だったっけ?と思ってドキッとすることがあります。この時ログを取っていれば自分の行動を遡って確認できますが、ログを取っていないと冷や汗を流すことになるかも知れません。

今までも、TeraTermでログインした後自動的にロギングを開始する設定は行っていたのですが、フォルダー名を決め打ちしてあらかじめフォルダーも作成しておきました。

今回、コマンド実行履歴を取りたいため、TeraTermをマクロで起動すると実行日をフォルダー名として自動的に作成するよう、TTLマクロを作りました。
作成したいフォルダーと同名のファイルがあると失敗するのですが、当日の日付をファイル名として保存することは、手動操作ではほぼあり得ないためエラー処理は省略しています。

C:\temp の下に、YYYY-MM-DD 形式のフォルダーと作り、接続スイッチ名をファイル名として、ログを作成します。このスイッチに複数回TTLマクロで接続すると、ログファイルにはログが追加される設定。

ログイン後のコマンドは特に記述していませんが、最終行の exit の前に、sendln コマンドでコマンドを追加してゆけば、ログインして、コマンドを入力して、スイッチから exit する動作を自動で行えます。

;  Telnet login
;connect 'cisco-switch-num3:23 /nossh /T=1'

Username = 'whoami'
hostname = 'host_name'
msg = hostname

getdate datestr
logdir = 'C:\temp\'
strconcat logdir datestr

foldersearch logdir
if result=0 then
        foldercreate logdir 
endif

logfile = logdir
strconcat logfile '\'
strconcat logfile hostname
strconcat logfile '.log'

strconcat msg ':23 /nossh /T=1'
connect msg

; set username
UsernamePrompt = 'Username:'
PasswordPrompt = 'Password:'
; get password from file
getpassword 'password.dat' 'mypassword' Password

; login
wait   UsernamePrompt
sendln Username

wait   PasswordPrompt
sendln Password

; OK, auto login complete.

logopen logfile 0 1
wait "#"
;sendln "exit"

たったこれだけのマクロですが、自動でログフォルダーを作成して、自動ログインするためのコマンドが実際に動かなくて、ここにたどり着くのになかなか苦労しました。

基本的には、以前作った自動ログインマクロの改造です。

コメントを残す