diff --git a/vpsinfo.php b/vpsinfo.php deleted file mode 100755 index 45f5a1f..0000000 --- a/vpsinfo.php +++ /dev/null @@ -1,1154 +0,0 @@ -&1"; - $mysql_com2 = "./mysqlreport --all --tab --user $my_user --password $my_pass --no-mycnf"; - -} -$allps_com = "ps -e | awk '{ print $4;}' | uniq"; - -// GET and POST requests to this page ----------------------------------------- - -// 'Sample current traffic' (vnstat): - -if ($_GET["traffic"]) { - $io = trim(`vnstat -tr | grep --after-context=3 Traffic`); - echo "\n\n
$io
\n\n"; - exit; -} - -// 'Ports List': - -if ($_GET["showports"]) { - $porttext = "Port What Is It? ----- ----------------------- - 21 FTP server - 25 Exim - SMTP - 53 Bind nameserver - 80 Apache webserver - 110 POP mail server - 143 IMAP mail server - 443 Secure Apache webserver - 465 Secure SMTP - 993 Secure IMAP -2082 cPanel -2083 Secure cPanel (https) -2086 WHM -2087 Secure WHM (https) -2095 Webmail -2096 Secure webmail (https) -3306 MySQL -8888 Secure shell - SSHD"; - echo "\n\n
$porttext
\n\n"; - exit; -} - -// Show logged-in shell users: - -if ($_GET["users"]) { - $users = trim(`w`); - echo "\n\n
Logged-in Users\n---------------\n$users
\n\n"; - exit; -} - -// Whois lookup: - -if ($_POST['whois']) { - $whois = trim($_POST['whois']); -} -elseif ($_GET['whois']) { - $whois = trim($_GET['whois']); -} -if ($whois) { - $whois = preg_replace("/[^a-z0-9-.]/", "", $whois); - $lookup = `whois $whois`; - echo "\n\n
$lookup
\n\n"; - exit; -} - -// ls -al /tmp: - -if ($_GET['lsal']) { - $lsout = "Command: ls -al /tmp\n\n"; - $lsout .= `ls -al /tmp`; - echo "\n\n
$lsout
\n\n"; - exit; -} - -// ps -aux (and mem): - -if ($_GET['psaux']) { - $psout = "Command: ps -aux\n\n"; - $psout .= `ps -aux`; - $psout = str_replace("<","<",$psout); - echo "\n\n
$psout
\n\n"; - exit; -} - -if ($_GET['psmem']) { - $psout = "Command: ps -auxh --sort=size | tac\n\n"; - $psout .= "USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND\n"; - $psout .= `ps -auxh --sort=size | tac`; - $psout = str_replace("<","<",$psout); - echo "\n\n
$psout
\n\n"; - exit; -} - -// Command windows: - -if ($_GET['cmd']) { - $cmd = $_GET['cmd']; - if ($cmd == "top") { - $out = trim(`top -n 1 -b`); - $meta = ""; - } - elseif ($cmd == "vpsstat") { - list($out,$opages,$ppages) = vpsstat(); - $meta = ""; - } - elseif ($cmd == "netstat") { - $out = netstat($netstat_com); - $meta = ""; - $buttons = "\n"; - $title = "netstat -nt (TCP connections)"; - } - elseif ($cmd == "netstat2") { - $out = trim(`netstat -ntl`); - $meta = ""; - $buttons = "\n"; - $title = "netstat -ntl (listening TCP ports)"; - } - elseif ($cmd == "mytop") { - $out = trim(`$mysql_com`); - $meta = ""; - } - elseif ($cmd == "mysqlreport") { - $out = trim(`$mysql_com2`); - $out = str_replace('_','-',$out); - $meta = ""; - } - elseif ($cmd == "vnstat") { - $out = trim(`vnstat`); - $meta = ""; - } - elseif ($cmd == "vnstat2") { - $out = trim(`vnstat -d`); - $meta = ""; - $title = "vnstat -d"; - } - elseif ($cmd == "vnstat3") { - $out = trim(`vnstat -m`); - $meta = ""; - $title = "vnstat -m"; - } - elseif ($cmd == "vnstat4") { - $out = trim(`vnstat -tr | grep --after-context=3 Traffic`); - $meta = ""; - $title = "vnstat -tr"; - } - - $reload = "$scriptname?cmd=$cmd"; - if (stristr($cmd,"vnstat")) { - $buttons = " - - - -"; - } - else { - $buttons .= " "; - } - if (!$title) { - $title = $cmd; - } - poppage($cmd,$out,$meta,$reload,$shorttime,$buttons,$title); - exit; -} - -// Run the commands now (except vnstat & mysql) ------------------------------- - -$top = trim(`$top_com`); -$hostname = trim(`hostname`); -$netstat = netstat($netstat_com); -$pstree = trim(`$pstree_com`); -$df_full = trim(`$df_com`); -$tmp_full = trim(`$tmp_com`); -$allps = trim(`$allps_com`); - -// Clean up / prep output ----------------------------------------------------- - -$netstat = preg_replace("/ {1,99}\n/", "\n", $netstat); -$tmp_full = preg_replace("/ {1,99}/", "\n", $tmp_full); - -// df - Disk Usage: - -$lines = explode("\n", $df_full); -for ($i=0; $i 90) { - $allfs .= "$mnt $parts[4]$actual, "; - } - else { - $allfs .= "$mnt $parts[4]$actual, "; - } - } - } - $prev = $parts[0];; -} -if (substr($allfs, -7) == ", ") { - $allfs = substr($allfs, 0, -7); -} - -// Other summary stats: - -$num_mysql = substr_count($pstree,'mysqld'); -$num_httpd = substr_count($pstree,'httpd'); -$num_tcp = substr_count($netstat,'tcp'); - -//Main page buttons: - -// Box buttons to command windows: -$topcmdlink = " + "; -$vpscmdlink = " + "; -$netcmdlink = " + "; - -if ($mysql_mon == 1) - $mycmdlink = " + "; -elseif ($mysql_mon == 2) - $mycmdlink = " + "; - -$vncmdlink = " + "; - -// Button for 'ls -al /tmp': -$lsal = "\n"; - -// Button for 'ps -aux': -$psaux = "\n"; - -// Button for 'ps -aux --sort=size | tac' :) -$psmem = "\n"; - -// Buttons for vnstat: -$vn_sampl = ""; -$vn_days = ""; -$vn_mons = ""; - -// Buttons for netstat: -$netstat_ntl = ""; -$portslink = ""; - -// Button for mysqlreport: -$mysqlrep_det = ""; - -// Auto-refresh meta tag: - -if ($refresh) { - if ($refresh < 1) { - $refresh = 1; - } - $refresh = ($refresh * 60); - $meta_refresh = "\n"; -} - -// Load bar indicators: - -$pattern = "/^.*\b(average)\b.*$/mi"; -preg_match($pattern, $top, $hits); -$loadline = $hits[0]; - -$load_bits = explode("average:",$loadline); -$load_parts = explode(",",$load_bits[1]); -$load1 = trim($load_parts[0]); -$loadlabel1 = $load1; -$load5 = trim($load_parts[1]); -$loadlabel5 = $load5; -$load15 = trim($load_parts[2]); -$loadlabel15 = $load15; - -if ($load1 > 10) { - $load1 = 10; -} -if ($load5 > 10) { - $load5 = 10; -} -if ($load15 > 10) { - $load15 = 10; -} - -if ($load1 > 1) { - $load1_width = round(($load1 - 1) * 22.22); - $bgcolor1 = "#82826E"; - $fgcolor1 = "#CC0000"; -} -else { - $load1_width = round($load1 * 200); - $bgcolor1 = "#222222"; - $fgcolor1 = "#82826E"; -} -if ($load5 > 1) { - $load5_width = round(($load5 - 1) * 22.22); - $bgcolor5 = "#82826E"; - $fgcolor5 = "#CC0000"; -} -else { - $load5_width = round($load5 * 200); - $bgcolor5 = "#222222"; - $fgcolor5 = "#82826E"; -} -if ($load15 > 1) { - $load15_width = round(($load15 - 1) * 22.22); - $bgcolor15 = "#82826E"; - $fgcolor15 = "#CC0000"; -} -else { - $load15_width = round($load15 * 200); - $bgcolor15 = "#222222"; - $fgcolor15 = "#82826E"; -} - -// If users, hyperlink 'User(s)' in top display: - -if (!stristr($top,"0 users,")) { - $top = preg_replace("/(user|users),/", "$1,", $top); -} - -// Mytop/mysqlreport and vnstat ------------------------------------------------ -// Run or produce a useful message if not installed. - -if ($mysql_mon == 1) { - exec("which mytop",$output,$return); - if ($return == 1) { - $mysql = "\n\nMytop is not installed. See the mytop website for information.\n\n"; - $mycmdlink = ""; - $mysql_head = ""; - } - elseif ($return == 0) { - $mysql = trim(`$mysql_com`); - $pattern = "/^.*\bQueries\b.*$/mi"; - preg_match($pattern, $mysql, $hits); - $queryline = trim($hits[0]); - $my_parts = explode(" ",$queryline); - } - $mysql_div = "
$mycmdlink
mytop
$mysql
\n"; -} -elseif ($mysql_mon == 2) { - if (file_exists('mysqlreport') && is_executable('mysqlreport')) { - $mysql = trim(`$mysql_com`); - if (stristr($mysql,'uptime')) { - // Get total queries for topbar display - $parts = explode("_\n",$mysql); - $parts = explode("\n",$parts[2]); - $qline = preg_replace("/ {1,99}/", "|", $parts[0]); - $my_parts = explode('|',$qline); - // The 'Full report' button - $full_report = "\n
$mysqlrep_det
"; - // Change underscores to dashes for readability - $mysql = str_replace('_','-',$mysql); - } - elseif (stristr($mysql,'Access denied for user')) { - $mysql = "\n\nThe mysqlreport script was denied access to mysql. Check that the mysql username -& password (in the vpsinfo configuration) are valid.\n\n"; - $mycmdlink = ''; - } - elseif (stristr($mysql,'bad interpreter')) { - $mysql = "\n\nThe mysqlreport script encountered a problem -- the first line does not have the -correct path for perl on your system.\n\n"; - $mycmdlink = ''; - } - else { - $mysql = "\n\nAn unknown error occurred with the mysqlreport script.\n\n"; - $mycmdlink = ''; - } - } - elseif (file_exists('mysqlreport')) { - $mysql = "\n\nThe mysqlreport script could not be executed. Check the file ownership & permissions.\n\n"; - $mycmdlink = ''; - } - else { - $mysql = "\n\nThe mysqlreport script was not found.\n -You need to get it from http://hackmysql.com/mysqlreport, store it in the same -directory as vpsinfo, and set correct ownership & permissions.\n\n"; - $mycmdlink = ''; - } - $mysql_div = "
$mycmdlink
mysqlreport
-
$mysql
$full_report\n"; -} - -if ($my_parts) { - if (is_numeric($my_parts[1])) { - $mysql_queries = round($my_parts[1]); - $mysql_units = ""; - } - else { - $mysql_units = strtoupper(substr($my_parts[1],-1)); - if ($mysql_units == "M") { - $mysql_queries = round(substr($my_parts[1],0,-1),2); - } - if ($mysql_units == "K") { - $mysql_queries = round(substr($my_parts[1],0,-1)); - } - } - $mysql_head = "
mysql queries
$mysql_queries $mysql_units
"; -} - -if ($vnstat) { - exec("which vnstat",$output,$return); - if ($return == 1) { - $vnstat = "\n\nVnstat is not installed. See the vnstat website for information.\n\n"; - $vncmdlink=''; $vn_sampl=''; $vn_days=''; $vn_mons=''; - $vnstat_div = "
vnstat
$vnstat
"; - } - elseif ($return == 0) { - $vnstat = trim(`$vnstat_com`); - $pattern = "/^.*\btoday\b.*$/mi"; - preg_match_all($pattern, $vnstat, $hits); - $todayline = $hits[0][0]; - $today = explode("|",$todayline); - $today_mb = str_replace(" MB","",$today[2]); - $today_mb = trim($today_mb); - if (stristr($today_mb,",")) { - $today_mb = str_replace(",","",$today_mb); - } - $today_mb = round($today_mb); - if ($today_mb > 999) { - $bw_today = round(($today_mb / 1024),1); - $bw_units = "GB"; - } - else { - $bw_today = $today_mb; - $bw_units = "MB"; - } - if ($today_mb > $bw_alert) { - $bw_today = "$bw_today"; - } - $vnstat_head = "
transfer today
$bw_today $bw_units
- "; - $vnstat_div = "
$vncmdlink
vnstat
$vnstat
-
$vn_sampl $vn_days $vn_mons
"; - } -} -// vpsstat-like processing of user_beancounters or RAM & swap ----------------- - -list($vpsstat,$mem1,$mem1_units,$mem1_label,$mem1_tip,$mem2,$mem2_units,$mem2_label,$mem2_tip) = vpsstat(); -if ($vpsstat) { - $vpsstat_div = "
$vpscmdlink
vpsstat
$vpsstat
\n"; -} - -// Process/daemon monitor ----------------------------------------------------- - -$allprocs = explode(" ", $processes); -foreach ($allprocs as $proc) { - $proc = trim($proc); - if (stristr($allps,$proc)) { - $tcpstatus .= " $proc  "; - } - else { - $tcpstatus .= " $proc  "; - } -} - -// FUNCTIONS ================================================================== - -function netstat($netstat_com) { - $out = trim(`$netstat_com`); - $out = str_replace(" Address","_Address",$out); - $lines = explode("\n",$out); - for ($i=0; $i 0) { - $line = preg_replace("/ {1,99}/", "|", $lines[$i]); - $line = str_replace("::ffff:","",$line); - $parts = explode("|",$line); - $col_0 = str_pad($parts[0], 5, " ", STR_PAD_RIGHT); - $col_1 = str_pad($parts[1], 6, " ", STR_PAD_LEFT); - $col_2 = str_pad($parts[2], 6, " ", STR_PAD_LEFT); - $col_3 = str_pad($parts[3], 23, " ", STR_PAD_RIGHT); - if (stristr($parts[4],":")) { - $col_4_parts = explode(":",$parts[4]); - $ip_str = $col_4_parts[0]; - } - $col_4 = str_pad($parts[4], 23, " ", STR_PAD_RIGHT); - if ($ip_str) { - $link = "$ip_str"; - $col_4 = str_replace($ip_str,$link,$col_4); - } - $col_5 = $parts[5]; - $cols = $col_0." ".$col_1." ".$col_2." ".$col_3." ".$col_4." ".$col_5; - } - else { - $cols = $lines[$i]; - } - $all .= "\n" . $cols; - } - $all = str_replace("_Address"," Address",$all); - return $all; -} -function poppage($cmd,$out,$meta,$reload,$shorttime,$buttons,$title) { - echo " - - - - $cmd - $meta - - - - - -
$title @ $shorttime
-
$buttons
-
$out
- - \n"; -} - -function vpsstat() { - $rawbeans = `/bin/beanc 2> /dev/null`; - if (!$rawbeans) { - if (file_exists('/proc/user_beancounters')) { - $rawbeans = `cat /proc/user_beancounters 2> /dev/null`; - } - else { - $ded=TRUE; - } - } - if ($rawbeans) { - $lines = explode("\n", $rawbeans); - for ($i=0; $i $bar) { - $mem1 = "$mem1"; - } - $mem1_label = "oomguarpages"; - $oomg_per = round($mem1 / $bar * 100); - $mem1_tip = "title='oomguarpages is guaranteed memory; you are using $oomg_per% of your quota'"; - $mem1_units = "MB"; - } - else { - $lim = round($line_parts[5] / 256) . " MB"; - $mem2 = round($cur); - $mem2_label = "privvmpages"; - $pmg_per = round($mem2 / $lim * 100); - $mem2_tip = "title='privvmpages is burstable memory; you are using $pmg_per% of your limit'"; - $mem2_units = "MB"; - } - } - else { - $cur = $line_parts[2]; - $rec = $line_parts[3]; - $bar = "n/a"; - $lim = $line_parts[5]; - } - $beans .= str_pad($line_parts[1],12) . str_pad($cur, 12, " ", STR_PAD_LEFT) .str_pad($rec, 12, " ", STR_PAD_LEFT) . str_pad($bar, 12, " ", STR_PAD_LEFT) . str_pad($lim, 12, " ", STR_PAD_LEFT) . str_pad($line_parts[6], 12, " ", STR_PAD_LEFT) . "\n"; - } - } - $parts = explode("\n",$beans); - $vpsstat = "Resource Current Recent Max Barrier Limit Failures\n"; - $vpsstat .= "------------ ---------- ---------- ---------- ---------- ----------\n"; - $vpsstat .= "$parts[2]\n$parts[0]\n$parts[1]\n$parts[3]\n$parts[4]\n$parts[5]"; - } - if (!$vpsstat && $ded==FALSE) { - $vpsstat = "\n -It seems you're running Virtuozzo 3 or OpenVZ. In order to read the VPS stats -(beancounters) you need a small 'helper' app. To install it do the following at -a shell prompt as root: - -[root@vps] wget http://www.labradordata.ca/downloads/install_beanc.sh -[root@vps] sh install_beanc.sh\n\n"; - } - elseif ($ded==TRUE) { - $free = `free`; - if ($free) { - $pattern = "/^.*\bMem\b.*$/mi"; - preg_match($pattern, $free, $hits); - $memline = $hits[0]; - $memline = preg_replace("/ {1,99}/", "|", $memline); - $parts = explode("|",$memline); - $kbytes = $parts[3]; - $mbytes = round($kbytes / 1024); - if ($mbytes > 999) { - $mem1 = round(($mbytes / 1024),1); - $mem1_units = "GB"; - } - else { - $mem1 = $mbytes; - $mem1_units = "MB"; - } - $mem1_label = "free RAM"; - $mem1_tip = "title='amount of free memory'"; - $pattern = "/^.*\bSwap\b.*$/mi"; - preg_match($pattern, $free, $hits); - $memline = $hits[0]; - $memline = preg_replace("/ {1,99}/", "|", $memline); - $parts = explode("|",$memline); - $kbytes = $parts[2]; - $mbytes = round($kbytes / 1024); - if ($mbytes > 999) { - $mem2 = round(($mbytes / 1024),1); - $mem2_units = "GB"; - } - else { - $mem2 = $mbytes; - $mem2_units = "MB"; - } - $mem2_label = "swap used"; - $mem2_tip = "title='amount of swap space currently used'"; - } - } - return array($vpsstat,$mem1,$mem1_units,$mem1_label,$mem1_tip,$mem2,$mem2_units,$mem2_label,$mem2_tip); -} - -$mtime = explode (" ", microtime()); -$tend = $mtime[0] + $mtime[1]; -$totaltime = round(($tend - $tstart),4); -$pagegen = "page generated in $totaltime sec."; - -// MAIN PAGE OUTPUT =========================================================== - -if ($gzip) { - ini_set('zlib.output_compression_level', 1); - ob_start("ob_gzhandler"); -} -header("Cache-Control: no-cache, must-revalidate"); -header('Pragma: no-cache'); -?> - - - - - -<?=$hostname?> : vpsinfo - - - - - - - - - -
- - - - - - -
Disk Usage:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - -
 
-
-
 
-
-
 
-
-
 
-
-
 
-
-
 
-
-
-
>
>
tcp conn
apache thds
mysql thds
 
- -
- - - - - - - - - - - -
 
top
-
- - -
-
Whois:
- -
pstree
-
ls -a /tmp
Ignoring PHP session files (sess_*)
-
- - - - -