#☆System EventLog を読み込み、日毎のEventLog開始、終了、経過時間を計算する
# イベントログ停止 "07/03/2001","12:30:47","EventLog","INFO","None",6006,"N/A","F111327",""FF000000
# イベントログ開始 "07/03/2001","13:21:36","EventLog","INFO","None",6005,"N/A","NET037",""
#---------------------------------------------------------------------------------------------
use strict;
my $elap;
my $elap_hh;
my $elap_hhx;
my $elap_mm;
my $elap_mmx;
my $elap_ss;
my $elap_ssx;
my $str_pos;
my $end_pos;
#========================================
# ログファイルを読み込み、テーブルへ格納
#========================================
my $sv_date;
my $filout;
my $wk_line;
my $str_time = '"99:99:99"';
my $end_time = '"00:00:00"';
### 1レコード先読み
open(FIN,$ARGV[0]) || die "IN File $ARGV[0] can't open ¥n";
my $rec=<FIN>
my @list = split(/,/,$rec);
$sv_date = $list[0];
close(FIN);
open(FIN,$ARGV[0]) || die "IN File $ARGV[0] can't open ¥n";
open(FOUT,">$ARGV[1]") || die "OUT File can't open ¥n";
while (my $rec=<FIN>) # ----- ログファイル(syslogxxxx.log)の読込み
{
@list = split(/,/,$rec);
if ($sv_date ne $list[0])
{
&timecal;
print " Date $sv_date $str_time - $end_time = $elap_hhx:$elap_mmx:$elap_ssx¥n";
print FOUT " Date $sv_date $str_time - $end_time = $elap_hhx:$elap_mmx:$elap_ssx¥n";
$sv_date = $list[0];
$str_time = '"99:99:99"';
$end_time = '"00:00:00"';
}
if ($list[5] =‾ /6005|6006/)
{
##print "$list[5]¥n";
if ($list[5] eq "6005")
{ if ($list[1] lt $str_time)
{
$str_time = $list[1];
}
}
else
{ if ($list[1] gt $end_time)
{
$end_time = $list[1];
}
}
}
}
close(FIN);
close(FOUT);
#=====================================================================
# 経過時間計算 Date "01/06/2001" Start "07:54:10" END "15:24:23"
#=====================================================================
sub timecal
{
$str_time =‾ /¥"(¥d¥d):(¥d¥d):(¥d¥d)¥"/;
$str_pos = $1 * 60 * 60 + $2 * 60 + $3;
$end_time =‾ /¥"(¥d¥d):(¥d¥d):(¥d¥d)¥"/;
$end_pos = $1 * 60 * 60 + $2 * 60 + $3;
$elap = $end_pos - $str_pos;
$elap_hh = int($elap / 3600);
$elap_mm = int(($elap - 3600 * $elap_hh)/60);
$elap_ss = $elap - 3600 * $elap_hh - 60 * $elap_mm;
$elap_hhx = sprintf "%02d",$elap_hh;
$elap_mmx = sprintf "%02d",$elap_mm;
$elap_ssx = sprintf "%02d",$elap_ss;
}