mrtg/webstat.pl

Mon, 28 Jan 2013 17:37:18 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 28 Jan 2013 17:37:18 +0100
changeset 758
a2c6460cfb16
parent 176
7ed48a3146ba
permissions
-rw-r--r--

Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.

michael@176 1 #! @l_prefix@/bin/perl
michael@135 2 ##
michael@737 3 ## webstat.pl: return HTTP server hits and bytes
michael@135 4 ##
michael@135 5 ## Configure Apache HTTP server like so:
michael@135 6 ## <Location /server-status>
michael@135 7 ## SetHandler server-status
michael@135 8 ## Order allow,deny
michael@135 9 ## Allow from localhost
michael@135 10 ## </Location>
michael@135 11 ## ExtendedStatus On
michael@135 12 ##
michael@135 13
michael@135 14 @res = `@l_prefix@/bin/lynx -dump http://localhost/server-status`;
michael@135 15
michael@135 16 foreach $res (@res) {
michael@135 17 if ($res =~ /Server uptime: (.*)$/) {
michael@135 18 $up = $1;last
michael@135 19 }
michael@176 20 else {
michael@135 21 next
michael@176 22 }
michael@135 23
michael@135 24 if ($res =~ /Server at/) {
michael@135 25 $server = $res;
michael@135 26 last
michael@135 27 }
michael@176 28 else {
michael@135 29 next
michael@176 30 }
michael@135 31 }
michael@135 32
michael@135 33 @res = `@l_prefix@/bin/lynx -dump http://localhost/server-status?auto`;
michael@135 34
michael@135 35 foreach $res (@res) {
michael@135 36 if ($res =~ /Total Accesses: (\d+)/) {
michael@135 37 $d1 = $1;
michael@135 38 next
michael@135 39 }
michael@135 40
michael@135 41 if ($res =~ /Total kBytes: (\d+)/) {
michael@135 42 $d2 = $1 * 1024;
michael@135 43 next
michael@135 44 }
michael@135 45 }
michael@135 46
michael@135 47 $d1 = int($d1);
michael@135 48 $d2 = int($d2);
michael@135 49
michael@135 50 if ($ARGV[0] eq "hits") {
michael@135 51 print "$d1\n";
michael@135 52 print "$d1\n";
michael@135 53 } elsif ($ARGV[0] eq "bytes") {
michael@135 54 print "$d2\n";
michael@135 55 print "$d2\n";
michael@135 56 }
michael@135 57
michael@135 58 print "$up\n";
michael@135 59 print "$server";
michael@176 60 print "$null\n";
michael@176 61 print "$null\n";
michael@135 62

mercurial