#!/sbin/sh
> /usr/local/script/monitorlcd/sla.month
> /usr/local/script/monitorlcd/sla.year
echo "SERVICE SLA_MONTH" > /usr/local/script/monitorlcd/sla.month
perl svc_rep_3 -t thismonth | egrep -e "Mail_Exchange|Mail_Exchange|Network_to_UK|Network_Local|Mainframe_Prod|UIMX|UIMX|Web_QOL|TriaTel_Service|BlackBerry_Service|Fax_Server_Service" >> /usr/local/script/monitorlcd/sla.month
echo "SERVICE SLA_YEAR" > /usr/local/script/monitorlcd/sla.year
perl svc_rep_3 -t thisyear | egrep -e "Mail_Exchange|Mail_Exchange|Network_to_UK|Network_Local|Mainframe_Prod|UIMX|UIMX|Web_QOL|TriaTel_Service|BlackBerry_Service|Fax_Server_Service" >> /usr/local/script/monitorlcd/sla.year
> status
echo "STATUS" > /usr/local/script/monitorlcd/status
wget -q --user=management --password=directline "http://nagios.directline.italy/nagios/cgi-bin/status.cgi?host=all" -O /usr/local/script/monitorlcd/pippo.html
./rm_tag.sed /usr/local/script/monitorlcd/pippo.html > /usr/local/script/monitorlcd/status.html
sed -i /^\$/d /usr/local/script/monitorlcd/status.html
sed -i 's/\ \;//g' /usr/local/script/monitorlcd/status.html
for i in Mail_Exchange Mail_Exchange Network_to_UK Network_Local Mainframe_Prod UIMX UIMX Web_QOL TriaTel_Service BlackBerry_Service Fax_Server_Service
do
cat /usr/local/script/monitorlcd/status.html | sed -n '/'$i'/{n;p}' >> /usr/local/script/monitorlcd/status
done
paste /usr/local/script/monitorlcd/status /usr/local/script/monitorlcd/sla.month /usr/local/script/monitorlcd/sla.year | awk ' { print $2";", $1";", $3";", $5";" }'
maniu@securebrain.com:~/script# cat svc_rep_3
#!/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,
)
or die "Can't construct Nagios::Report object." ;
$x->mkreport(
[
qw(
SERVICE_DESCRIPTION
PERCENT_TOTAL_TIME_OK
)
],
sub { my %F = @_; my $u = $F{PERCENT_TOTAL_TIME_OK}; $u =~ s/%//; },
&comp(alpha => 0, ascend => 0, fields => [qw(TOTAL_TIME_CRITICAL)]),
) ;
$x->debug_dump(300, 6) ;
maniu@securebrain.com:~/script# cat rm_tag.sed
#!/bin/sed -nf
#< strip HTML tags from input
: loop
/<.*>/ {
#if we have a HTML tag, remove it
s/<[^<>]*>//g
#branch if a successful substitution was made
t loop
}
/ {
#if just an opening tag is found, append the
#next line of input into the pattern space
N
b loop
}
# print the rest!
p