+25Sep02=======================================================================
+1. added mrtg stuff to the system as a template. In order to use this you
+must install mrtg onto your system and copy all the mrtg files (or at least
+all the images) to new directory /spider/html/mrtg. The system generates the
+config file for you as part of its workings. To get it to update add a line
+to your spider crontab like:
+
+00,05,10,15,20,25,30,35,40,45,50,55 * * * * run_cmd('mrtg all')
+
+You will also need to do an indexmaker in the html directory. I put the
+index page into /spider/html/mrtg/stats.html YMMV. I do:
+
+indexmaker --output stats.html --columns=1 --title "MRTG statistics for
+GB7DJK" ../../mrtg/mrtg.cfg
+
+But all on one line.
22Sep02=======================================================================
1. Add changes to the installation manual for Windows users from K1XX
21Sep02=======================================================================
--- /dev/null
+#
+# This is a local command to generate the various statistics that
+# can then be displayed on an MRTG plot
+#
+# Your mrtg binary must live in one of the standard places
+#
+my ($self, $line) = @_;
+
+return (1) unless -e '/usr/bin/mrtg' || -e '/usr/local/bin/mrtg';
+
+my $dir = "$main::root/mrtg";
+my $html = "$main::root/html/mrtg";
+my $cfg = "$dir/mrtg.cfg";
+
+# do some checking
+return (1, "$dir is missing") unless -d $dir;
+return (1, "$html is missing") unless -d $html;
+return (1, "$cfg is missing") unless -e "$cfg";
+open MC, ">$cfg" or return(1, "cannot open $cfg for mrtg writing");
+
+# print out the header
+print MC <<"EOF";
+### Global Defaults
+
+# to get bits instead of bytes and graphs growing to the right
+# Options[_]: growright, bits
+
+Htmldir: $html
+Imagedir: $html
+Logdir: $dir
+Options[_]: growright
+
+##
+##
+
+EOF
+
+# create the arg list
+my %want;
+for ( split /\s+/, $line) {
+ $want{lc $_} = 1;
+};
+
+#dbg "$dir\n$html\n";
+
+# do the users and nodes
+my $users = DXChannel::get_all_users();
+my $nodes = DXChannel::get_all_nodes();
+my $uptime = main::uptime();
+#dbg "$users $nodes $uptime\n";
+if (open M, ">$dir/users") {
+ print M "$users\n$nodes\n$uptime\nUsers and Nodes\n";
+ close M;
+}
+print MC <<"EOF";
+#
+# local users and nodes
+#
+Target[users]: `cat /spider/mrtg/users`
+MaxBytes1[users]: 500
+MaxBytes2[users]: 200
+Title[users]: Users and Nodes for $main::mycall
+Options[users]: withzeroes, gauge, growright, nopercent, integer
+YLegend[users]: Users \& Nodes
+YTicsFactor[users]: 1
+ShortLegend[users]: \
+Legend1[users]:Maximum No of Users
+Legend2[users]:Maximum No of Nodes
+LegendI[users]:Users
+LegendO[users]:Nodes
+PageTop[users]: <H1>Users and Nodes on GB7DJK</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>$main::mycall</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+ <TR><TD>Description:</TD><TD>Users \& Nodes </TD></TR>
+ </TABLE>
+EOF
+
+# do the total users and nodes
+if ($want{totalusers} || $want{all}) {
+ $nodes = Route::Node::count();
+ $users = Route::User::count();
+ #dbg "$users $nodes $uptime\n";
+ if (open M, ">$dir/totalusers") {
+ print M "$users\n$nodes\n$uptime\nTotal Users and Nodes\n";
+ close M;
+ }
+ print MC <<"EOF";
+#
+# total users and nodes
+#
+Target[totalusers]: `cat /spider/mrtg/totalusers`
+MaxBytes1[totalusers]: 5000
+MaxBytes2[totalusers]: 5000
+Title[totalusers]: Total Users and Nodes for the Visible Cluster Network
+Options[totalusers]: withzeroes, gauge, growright, nopercent, integer
+YLegend[totalusers]: Users \& Nodes
+YTicsFactor[totalusers]: 1
+ShortLegend[totalusers]: \
+Legend1[totalusers]:Maximum No of Users
+Legend2[totalusers]:Maximum No of Nodes
+LegendI[totalusers]:Users
+LegendO[totalusers]:Nodes
+PageTop[totalusers]: <H1>Total Users and Nodes in the Visible Network</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>$main::mycall</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+ <TR><TD>Description:</TD><TD>Total Users \& Nodes for the Visible Cluster Network </TD></TR>
+ </TABLE>
+EOF
+}
+
+# do the total spots
+if ($want{totalspots} || $want{all}) {
+ if (open M, ">$dir/totalspots") {
+ print M "$Spot::totalspots\n$Spot::totalspots\n$uptime\nTotal Spots\n";
+ close M;
+ }
+ $Spot::totalspots = 0;
+ print MC <<"EOF";
+#
+# total spots
+#
+Target[totalspots]: `cat /spider/mrtg/totalspots`
+MaxBytes[totalspots]: 20000
+Title[totalspots]: Total Spots
+Options[totalspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer, noi
+YLegend[totalspots]: Spots
+YTicsFactor[totalspots]: 1
+ShortLegend[totalspots]: \
+Legend2[totalspots]:Maximum No of Spots
+LegendO[totalspots]:Spots
+PageTop[totalspots]: <H1>Total Spots</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>$main::mycall</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+ <TR><TD>Description:</TD><TD>Total Spots</TD></TR>
+ </TABLE>
+EOF
+}
+
+# do the HF and VHF spots
+if ($want{hfvhf} || $want{all}) {
+ if (open M, ">$dir/hfspots") {
+ print M "$Spot::hfspots\n$Spot::vhfspots\n$uptime\nHF and VHF+ Spots\n";
+ close M;
+ }
+ $Spot::hfspots = $Spot::vhfspots = 0;
+ print MC <<"EOF";
+#
+# HF and VHF spots
+#
+Target[hfspots]: `cat /spider/mrtg/hfspots`
+MaxBytes[hfspots]: 20000
+Title[hfspots]: HF and VHF+ Spots
+Options[hfspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer
+YLegend[hfspots]: Spots
+WithPeak[hfspots]: ymwd
+YTicsFactor[hfspots]: 1
+ShortLegend[hfspots]: \
+Legend1[hfspots]:Max no of HF Spots
+Legend2[hfspots]:Max no of VHF Spots
+LegendI[hfspots]:HF
+LegendO[hfspots]:VHF+
+PageTop[hfspots]: <H1>Total HF and VHF+ Spots</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>$main::mycall</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>$main::myemail</TD></TR>
+ <TR><TD>Description:</TD><TD>Total HF and VHF+ Spots</TD></TR>
+ </TABLE>
+EOF
+}
+
+close MC;
+
+my @args;
+@args = ("mrtg", $cfg);
+system @args;
+
+return (1);
--- /dev/null
+
+### Global Config Options
+
+# for UNIX
+# WorkDir: /home/http/mrtg
+
+# or for NT
+# WorkDir: c:\mrtgdata
+
+### Global Defaults
+
+# to get bits instead of bytes and graphs growing to the right
+# Options[_]: growright, bits
+
+WorkDir: /spider/html/mrtg
+Options[_]: growright
+
+######################################################################
+#System: gate.tobit.co.uk
+#Description: Tobit Computer Co Ltd Router
+#Contact: djk@tobit.co.uk
+#Location: Dereham, Norfolk, UK JO02LQ
+######################################################################
+
+Target[users]: `cat /spider/mrtg/users`
+MaxBytes1[users]: 500
+MaxBytes2[users]: 200
+Title[users]: Users and Nodes for GB7DJK
+Options[users]: unknaszero, withzeroes, gauge, growright, nopercent, integer
+WithPeak[users]: ymwd
+YLegend[users]: Users & Nodes
+YTicsFactor[users]: 1
+ShortLegend[users]:
+Legend1[users]:Maximum No of Users
+Legend2[users]:Maximum No of Nodes
+LegendI[users]:Users
+LegendO[users]:Nodes
+PageTop[users]: <H1>Users and Nodes on GB7DJK</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>gb7djk.dxcluster.net</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+ <TR><TD>Description:</TD><TD>Users & Nodes </TD></TR>
+ </TABLE>
+
+Target[totalusers]: `cat /spider/mrtg/totalusers`
+MaxBytes1[totalusers]: 5000
+MaxBytes2[totalusers]: 5000
+Title[totalusers]: Total Users and Nodes for the Visible Cluster Network
+Options[totalusers]: unknaszero, withzeroes, gauge, growright, nopercent, integer
+YLegend[totalusers]: Users & Nodes
+WithPeak[totalusers]: ymwd
+YTicsFactor[totalusers]: 1
+ShortLegend[totalusers]:
+Legend1[totalusers]:Maximum No of Users
+Legend2[totalusers]:Maximum No of Nodes
+LegendI[totalusers]:Users
+LegendO[totalusers]:Nodes
+PageTop[totalusers]: <H1>Total Users and Nodes in the Visible Network</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>gb7djk.dxcluster.net</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+ <TR><TD>Description:</TD><TD>Total Users & Nodes for the Visible Cluster Network </TD></TR>
+ </TABLE>
+
+Target[totalspots]: `cat /spider/mrtg/totalspots`
+MaxBytes[totalspots]: 20000
+Title[totalspots]: Total Spots
+Options[totalspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer, noi
+YLegend[totalspots]: Spots
+WithPeak[totalspots]: ymwd
+YTicsFactor[totalspots]: 1
+ShortLegend[totalspots]:
+Legend2[totalspots]:Maximum No of Spots
+LegendO[totalspots]:Spots
+PageTop[totalspots]: <H1>Total Spots</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>gb7djk.dxcluster.net</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+ <TR><TD>Description:</TD><TD>Total Spots</TD></TR>
+ </TABLE>
+
+
+Target[hfspots]: `cat /spider/mrtg/hfspots`
+MaxBytes[hfspots]: 20000
+Title[hfspots]: HF and VHF+ Spots
+Options[hfspots]: unknaszero, gauge, withzeroes, growright, nopercent, integer
+YLegend[hfspots]: Spots
+WithPeak[hfspots]: ymwd
+YTicsFactor[hfspots]: 1
+ShortLegend[hfspots]:
+Legend1[hfspots]:Max no of HF Spots
+Legend2[hfspots]:Max no of VHF Spots
+LegendI[hfspots]:HF
+LegendO[hfspots]:VHF+
+PageTop[hfspots]: <H1>Total HF and VHF+ Spots</H1>
+ <TABLE>
+ <TR><TD>System:</TD> <TD>gb7djk.dxcluster.net</TD></TR>
+ <TR><TD>Maintainer:</TD> <TD>djk@tobit.co.uk</TD></TR>
+ <TR><TD>Description:</TD><TD>Total HF and VHF+ Spots</TD></TR>
+ </TABLE>
+
$main::build += $VERSION;
$main::branch += $BRANCH;
-use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef);
+use vars qw($fp $statp $maxspots $defaultspots $maxdays $dirprefix $duplth $dupage $filterdef $totalspots $hfspots $vhfspots);
$fp = undef;
$statp = undef;
{
my $buf = join("\^", @_[0..7]);
$fp->writeunix($_[2], $buf);
+ $totalspots++;
+ if ($_[0] <= 30000) {
+ $hfspots++;
+ } else {
+ $vhfspots++;
+ }
}
# search the spot database for records based on the field no and an expression