#!/usr/bin/perl # # mysql.pl # # Interface for MySQL and MRTG # # Copyright 2008 by Steffen Land, info@apachelounge.com . All rights reserved. # $host = "localhost"; $port ="80"; $CACHE_FILE = "/tmp/mysql.cache"; sub RetrieveStats(){ $null = @ENV{COMPUTERNAME} ? "nul" : "/dev/null" ; `/usr/local/bin/curl -m 10 http://$host:$port/mysql.php -A \"ApacheLounge Monitor\" > $CACHE_FILE 2>$null`; } sub Validate() { if ((scalar(@ARGV) < 2) || ($ARGV[0] eq '')) { print "ERR: invalid arguments.\n"; exit; } } Validate(); @type = ($ARGV[0],$ARGV[1]); while (@ARGV) { $x=shift(@ARGV); if ($x =~ /-conf/) {require shift(@ARGV);}} @result = (0,0); $complete = 0; if ( time() - (stat($CACHE_FILE))[9] > (60*2) ){ RetrieveStats(); } open(IN,"< $CACHE_FILE") or die "Could not open cached file"; foreach $line ( ){ $complete=1; $result[1] = $line; $result[0] = "0"; # if ($line =~ /^Selec/) {$complete=1;last;} for($i=0;$i<=1;$i++){ ## if ($type[$i] eq "questions" && $line =~ /^Questions\D*(\d+)/) {$result[$i]=($result[$i]+$1);next;} ## if ($type[$i] eq "null") {$result[$i]="0";} } } close IN; if (!$complete) {exit;} print $result[0]."\n"; print $result[1]."\n"; print $uptime."\n"; print $host."\n";