Mon, 28 Jan 2013 17:37:18 +0100
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 |