<P>Wow, Chet should make a website or add it to <A href="http://www.sourceforge.net/">SourceForge</A> site... :) 
<P> <B><I>Lane Williams <willipl1@jhuapl.edu></I></B> wrote:
<BLOCKQUOTE style="BORDER-LEFT: #1010ff 2px solid; MARGIN-LEFT: 5px; PADDING-LEFT: 5px">I got a script from Chet Luther, modified it heavily and now it looks<BR>something like what I have below. You obviously can format the output<BR>however you wish. I used this just for testing the functionality so I<BR>suggest using your own formatting. The main line to pay attention to is<BR>the "my $request" variable which does a "GET". I've used this idea to<BR>output the data to a CSV file, and just dump it to a hash and formatted<BR>the output within the script.<BR><BR>Hope this helps..... also attached the file in-case email screws up the<BR>formatting.<BR><BR>#################BEGIN SCRIPT#############################<BR>#!/usr/local/perl/bin/perl -w<BR>#<BR># Parse the outputs from Nagios' avail.cgi into an HTML table.<BR>#<BR><BR>use Date::Manip;<BR>use LWP::UserAgent;<BR>use Time::Local;<BR>use Data::Dumper;<BR>$~ = ReportFormat;<BR>@stime = ("07","00",00);<BR>@etime = (18,30,00);
 <BR><BR>$date = `date +"\%m \%d \%Y"`; #month date year<BR>chomp $date;<BR><BR>($mon,$day,$year)=split ' ', $date;<BR><BR>#$sec1x = &UnixDate ($epoch_date1x, "%s");<BR>#$sec2x = &UnixDate ($epoch_date2x, "%s");<BR><BR>use vars qw($agent);<BR>#use strict;<BR><BR>my $nagios_url = "http://yoursite/nagios/cgi-bin";<BR><BR>$agent = new LWP::UserAgent();<BR>$agent->agent("Mozilla/6.0");<BR>$agent->timeout(600);<BR><BR>my $request = new HTTP::Request(GET =><BR>"$nagios_url/avail.cgi?show_log_entries=&host=all&timeperiod=custom&smon=$mon&sday=$day&syear=$year&shour=$stime[0]&smin=$stime[1]&ssec=$stime[2]&emon=$mon&eday=$day&eyear=$year&ehour=$etime[0]&emin=$etime[1]&esec=$etime[2]&assumeinitialstates=yes&assumestateretention=yes&initialassumedstate=-1&backtrack=4&csvoutput=");<BR><BR>$request->header('Accept' => 'text/html');<BR>$request->authorization_basic('username', 'password')
 ;<BR><BR>my $response = $agent->request($request);<BR><BR>if (!$response->is_success()) {<BR>exit;<BR>}<BR>(@response) = split '\n' , $response->content();<BR><BR>foreach $line (@response){<BR><BR>#print <BR>"$mon/$day/$year,$stime[0]:$stime[1],$etime[0]:$etime[1],\n$line\n";<BR>if ($line !~ /^HOST_NAME/){<BR><BR>(@info) = split ',' , $line;<BR>@info[0] = map {uc} @info[0];<BR>@info[0] =~ s/"//g;<BR>push<BR>@{$sys_avail{$info[0]}},($info[7],$info[8],$info[16],$info[17]); <BR>##host_name total_time_up percent_total_time_up total_time_down<BR>percent_total_time_down##<BR>}<BR>}<BR><BR><BR>foreach $key (sort keys %sys_avail){<BR><BR>write;}<BR><BR>format ReportFormat_TOP =<BR><BR>===========================================================<BR>System Availability <BR>for<BR>@</@< @<<<<br> $mon, $day, $year<BR>@<:@< - @<:@<<BR>$stime[0], $stime[1], $etime[0], $etime[1]<BR>page@|||<BR>$%<BR>===========================================================<BR>HostNam
 e Percent of Uptime Percent Down Time<BR>___________________________________________________________<BR>.<BR>format ReportFormat = <BR><BR>@<<<<<<<<<<<<<<<<< @<<<<<<< @<<<<<<<<<BR>$key, "@{$sys_avail{$key}}[1]","@{$sys_avail{$key}}[3]"<BR>.<BR><BR>###############################END SCRIPT#############################<BR><BR><BR><BR><BR><BR><BR>On Thu, 2003-02-20 at 11:47, bill lewis wrote:<BR>> I have some folks that would like reports in csv format on things that<BR>> nagios<BR>> is already keeping track of. I would like to run the avail.cgi from a<BR>> script<BR>> to generate the reports. I have tried setting the environment variables<BR>> suggested and cannot get past more that the first page.<BR>> <BR>> Is there a way to do this?<BR>> <BR>> thanks,<BR>> Bill Lewis<BR>> <BR>> <BR>> -----<BR>> William L. Lewis<BR>> email: william.
 l.lewis@usa.net<BR>> "They that can give up essential liberty to obtain a little temporary<BR>> safety<BR>> deserve neither liberty nor safety."<BR>> --Ben Franklin<BR>> <BR>> <BR>> <BR>> -------------------------------------------------------<BR>> This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.<BR>> The most comprehensive and flexible code editor you can use.<BR>> Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.<BR>> www.slickedit.com/sourceforge<BR>> _______________________________________________<BR>> Nagios-users mailing list<BR>> Nagios-users@lists.sourceforge.net<BR>> https://lists.sourceforge.net/lists/listinfo/nagios-users<BR>> ::: Please include Nagios version, plugin version (-v) and OS when<BR>> reporting any issue.<BR>> ::: Messages without supporting info will risk being sent to /dev/null<BR><BR>#!/usr/local/perl/bin/perl -w<BR>#<BR># Parse the outputs from Nagios'
  avail.cgi into an HTML table.<BR><BR><BR>use Date::Manip;<BR>use LWP::UserAgent;<BR>use Time::Local;<BR>use Data::Dumper;<BR>$~ = ReportFormat;<BR>@stime = ("07","00",00);<BR>@etime = (18,30,00);<BR><BR>$date = `date +"\%m \%d \%Y"`; #month date year<BR>chomp $date;<BR><BR>($mon,$day,$year)=split ' ', $date;<BR><BR>#$sec1x = &UnixDate ($epoch_date1x, "%s");<BR>#$sec2x = &UnixDate ($epoch_date2x, "%s");<BR><BR>use vars qw($agent);<BR>#use strict;<BR><BR>my $nagios_url = "http://yoursite/nagios/cgi-bin";<BR><BR>$agent = new LWP::UserAgent();<BR>$agent->agent("Mozilla/6.0");<BR>$agent->timeout(600);<BR><BR>my $request = new HTTP::Request(GET => "$nagios_url/avail.cgi?show_log_entries=&host=all&timeperiod=custom&smon=$mon&sday=$day&syear=$year&shour=$stime[0]&smin=$stime[1]&ssec=$stime[2]<BR>&emon=$mon&eday=$day&eyear=$year&ehour=$etime[0]&emin=$etime[1]&esec=$etime[2]&assumeinitialstates=yes&assu
 mestateretention=yes&initialassumedstate=-1&backtrack=4&csvoutput=");<BR><BR>$request->header('Accept' => 'text/html');<BR>$request->authorization_basic('username', 'password');<BR><BR>my $response = $agent->request($request);<BR><BR>if (!$response->is_success()) {<BR>exit;<BR>}<BR>(@response) = split '\n' , $response->content();<BR><BR>foreach $line (@response){<BR><BR>#print "$mon/$day/$year,$stime[0]:$stime[1],$etime[0]:$etime[1],\n$line\n";<BR>if ($line !~ /^HOST_NAME/){<BR><BR>(@info) = split ',' , $line;<BR>@info[0] = map {uc} @info[0];<BR>@info[0] =~ s/"//g;<BR>push @{$sys_avail{$info[0]}}, ($info[7],$info[8],$info[16],$info[17]); ##host_name total_time_up percent_total_time_up total_time down percent_total_time_down##<BR>}<BR>}<BR><BR><BR>foreach $key (sort keys %sys_avail){<BR><BR>write;}<BR><BR>format ReportFormat_TOP =<BR><BR>===========================================================<BR>System Availability <BR>for<BR>@</@< @<<<<br> 
 $mon, $day, $year<BR>@<:@< - @<:@<<BR>$stime[0], $stime[1], $etime[0], $etime[1]<BR>page@|||<BR>$%<BR>===========================================================<BR>HostName Percent of Uptime Percent Down Time<BR>___________________________________________________________<BR>.<BR>format ReportFormat = <BR><BR>@<<<<<<<<<<<<<<<<< @<<<<<<< @<<<<<<<<<BR>$key, "@{$sys_avail{$key}}[1]","@{$sys_avail{$key}}[3]"<BR>.<BR><BR><BR><BR></BLOCKQUOTE><p><br><hr size=1>Do you Yahoo!?<br>
<a href="http://rd.yahoo.com/finance/mailtagline/*http://taxes.yahoo.com/">Yahoo! Tax Center</a> - forms, calculators, tips, and more