#!/usr/bin/perl use strict ; use Nagios::Report ; use Getopt::Std ; use vars qw($opt_t) ; getopt 't' ; my $usage = < Displays those hosts with less than 100% total time up during the timeperiod. timeperiod ::= today | yesterday | thisweek | lastweek | thismonth | lastmonth | thisyear | lastyear | last12hours | last24hours | last7days | last31days | HHMM | HH::MM | DD.MM.YY | DD.MM.YYYY | MM/DD/YY | MM/DD/YYYY | 24hourtime date eg $0 -t 07:00 01.12.2005 USAGE die $usage unless $opt_t ; die $usage unless $opt_t =~ m#^(?: today | yesterday | this (?:week|month|year) | last (?:week|month|year|24hours|12hours|7days|31days|\d+days?|\d+hours?) | (?: \d\d :? \d\d \s+ \d\d? [\./] \d\d? [\./] \d\d (?:\d\d)?) | (?: \d\d :? \d\d) | (?: \d\d? [\./] \d\d? [\./] \d\d (?:\d\d)?) )$#x ; my $x = Nagios::Report->new( q, [ qw(24x7) ], $opt_t, 1, # sub { my %F = @_; $F{HOST_NAME} eq 'Toowoomba_DEST_router' }, ) or die "Can't construct Nagios::Report object." ; $x->mkreport( [ qw( HOST_NAME SERVICE_DESCRIPTION PERCENT_TOTAL_TIME_OK TOTAL_TIME_CRITICAL AVAIL_URL TREND_URL ) ], sub { my %F = @_; my $u = $F{PERCENT_TOTAL_TIME_OK}; $u =~ s/%//; $u < 100 }, &comp(alpha => 0, ascend => 0, fields => [qw(TOTAL_TIME_CRITICAL)]), ) ; $x->debug_dump(300, 6) ; # 240 chars is needed for the _host_ URLs. # service URLS are bigger