Code

Fix for regex input of '|', being output causing problems with Nagios' parsing of
[nagiosplug.git] / contrib / sched_downtime.pl
1 #! /usr/bin/perl -w
2 #
3 # Marko Riedel, EDV Neue Arbeit gGmbH, mriedel@neuearbeit.de 
4 #
5 #
6 #
7 #
8 use POSIX qw(strtol);
10 my $command_file = '/usr/local/nagios/var/rw/nagios.cmd';
12 my $hour = (60*60);
13 my $next_day = (24*60*60);
15 my $downtimes = 
16   [
17    { 
18     host => 'somehost',
19     service => 'SERVICE',
20     times => [ ["00:00", 9], ["18:00", 6] ]
21    }
22   ];
24 foreach my $entry (@$downtimes) {
25   my ($secstart, $secend, $cmd, $current);
27   $current = `/bin/date +"%s"`;
28   chomp $current;
30   foreach my $tperiod (@{ $entry->{times} }){
31     $secstart = strtol(`/bin/date -d "$tperiod->[0]" +"%s"`);
32     $secend   = $secstart+$tperiod->[1]*$hour;
34     $secstart += $next_day;
35     $secend   += $next_day;
37     $cmd  = "[$current] SCHEDULE_SVC_DOWNTIME;";
38     $cmd .= "$entry->{host};$entry->{service};";
39     $cmd .= "$secstart;$secend;";
40     $cmd .= "1;0;$0;automatically scheduled;\n";
42     print STDERR $cmd;
44     system "echo \"$cmd\" >> $command_file";
45   }
46 }