When mon is restarted, the alerts_sent value is reset even though the history is read. Is there a way to get readhistoricfile() to update the alert_count also? Would it be safe to do the following to put the alert counts in the periods back? It seems to be working now for me.
*** mon Sat Sep 8 08:42:05 2001 --- mon.saved Thu Feb 28 16:35:58 2002 *************** *** 4457,4462 **** --- 4458,4465 ---- } my $epochLimit = 0; + my %alertpertime = {}; + if ($CF{"HISTORICTIME"} != 0) { $epochLimit = time - $CF{"HISTORICTIME"}; } *************** *** 4466,4472 **** while (<HISTFILE>) { next if (/^\s*$/ || /^\s*#/); chomp; ! my $epochAlert = (split(/\s+/))[3]; push (@last_alerts, $_) if ($epochAlert >= $epochLimit); } --- 4469,4490 ---- while (<HISTFILE>) { next if (/^\s*$/ || /^\s*#/); chomp; ! ! my ($alerttype,$group,$service,$epochAlert,$junk) = split(/\s+/,$_,5); ! my $sref = \%{$watch{$group}->{$service}}; ! ! ! foreach my $periodlabel (keys %{$sref->{"periods"}}) ! { ! if ( inPeriod ($epochAlert, $sref->{"periods"}->{$periodlabel}->{"period"})) { ! my $pref = \%{$sref->{"periods"}->{$periodlabel}}; ! $pref->{"_alert_sent"}++ if ($alerttype eq "alert" && !defined($alertpertime{$epochAlert})); ! $pref->{"_alert_sent"}=0 if ($alerttype eq "upalert"); ! ! } ! } ! $alertpertime{$epochAlert} = 1; ! push (@last_alerts, $_) if ($epochAlert >= $epochLimit); } Gerald Skerbitz MDH-Environmental Health IRM 651-215-0740 TextPage: [EMAIL PROTECTED] http://mdh-fyi.health.state.mn.us/divs/eh/information/gerry-page.html