「コマンド実行結果をログに保存する」にて、ログ出力する事が
できたかと思います。

コマンド実行結果をログに保存する

しかし、やはりこのままでは、同じファイル名でローカルPCに保存することに
なりますので、いちいち後で手で上書きしないようにファイル名を修正する等
しないといけなくなってしまいますので、不便ですよね。

そこで、出力するログファイルに日付を付加する方法を紹介致します。

サンプルマクロとしては下記になります。

;接続先ホスト
HOSTADDR = '192.168.10.6' 

;ユーザ名
USERNAME = 'test'

;パスワード設定
PASSWORD = 'testpass' 

;接続コマンド作成
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
 
;接続 
connect COMMAND

;================================================
;ログファイルに付ける日付を取得
getdate DATE '%Y%m%d-%H%M%S'

;出力するログファイル名を生成
LOGNAME = "C:\Users\User\Desktop\hostname_"
strconcat LOGNAME DATE
strconcat LOGNAME ".log"
;================================================

;ログファイル保存
wait '$'
logopen LOGNAME 0 1
sendln ""
wait '$'
sendln "hostname"
wait '$'
sendln "uname -a"
wait '$'
logclose
sendln "exit"

;マクロ終了 
end

上記、マクロを実行することで、ファイル出力したログに対して
日時を付加することができましたね。

スポンサーリンク


今回のマクロのポイントとしては、まずは「getdate」になります。
DATEが「日時が格納される変数」で、「’%Y%m%d-%H%M%S’」というフォーマットで
日時を出力しています。

getdate DATE ‘%Y%m%d-%H%M%S’

形式
%Yyyyy(年4桁)2017
%mmm(月2桁)06
%ddd(日2桁)25
%Hhh(時間2桁)19
%Mmm(分2桁)51
%Sss(秒2桁)30

後は、「LOGNAME」という出力先のファイルフルパスに対して、「strconcat」等の
TTLコマンドにて、「hostname_日付-時間.log」と言うファイル名になるように整形しています。

こうすることで、過去のファイルの上書き等に左右されず、安心して日々、
マクロを実行してコマンド結果の収集等の作業を実施することができますね。

スポンサーリンク