#!/usr/bin/perl # # Presence's Mysql Status # $mysql_password = "*****"; # $connected = `mysqladmin --password=$mysql_password extended-status | grep Threads_connected`; $available = `mysqladmin --password=$mysql_password variables| grep max_connections`; $uptime = `mysqladmin --password=$mysql_password extended-status | grep Uptime`; $questions = `mysqladmin --password=$mysql_password extended-status | grep Questions`; $load = `ps auxwww |grep mysqld |grep -v safe| grep -v grep`; @loads = split(/\s+/,$load); $load_cpu = $loads[2]; $load_mem = $loads[4]; $load_now = $loads[5]; if ($load_mem > 1000) { $load_mem = int $load_mem / 1000; $load_mem = $load_mem. "M"; } else { $load_mem = $load_mem. "K"; } if ($load_now > 1000) { $load_now = int $load_now / 1000; $load_now = $load_now. "M"; } else { $load_now = $load_now. "K"; } $connected =~ s/\D+//g; $available =~ s/\D+//g; $uptime =~ s/\D+//g; $questions =~ s/\D+//g; $open = $available - $connected; $up_mins = int $uptime / 60; if ($up_mins > 1) { $up_hours = int $up_mins / 60; if ($up_hours > 1) { $up_days = int $up_hours / 24; if ($up_hours >= 1) { $my_up = "Up $up_days days\n"; } else { $my_up = "Up $up_hours hours\n"; } } else { $my_up = "Up $up_mins minutes\n"; } } else { $my_up = "Up $uptime seconds\n"; } $rate = int $questions / $uptime; print "----= MySQL Status =----\n"; print $my_up; print "$connected MySQL connections in use\n"; print "$open MySQL connections available\n"; print "$questions Queries served\n"; print "$rate queries per second average\n"; print "$load_cpu\% CPU load\n"; print "$load_mem Memory total for MySQL\n"; print "$load_now Memory in use now\n";