Have your own service status script! (CPANEL, PHP)

Namecheap AuctionsNamecheap Auctions
Namecheap AuctionsNamecheap Auctions
SpaceshipSpaceship
Watch

adam_uk

Established Member
Impact
20
this script is designed for users with there own host running cpanel with php

demo can be seen here
http://www.intentio-server.com

the code:
PHP:
<?php
/*
*   +------------------------------------------------------------------------------+
*       CPANEL STATUS SCRIPT                                                               
*   +------------------------------------------------------------------------------+
*       Copyright Notice(s)                                                        
*   +------------------------------------------------------------------------------+
*       Disclaimer Notice(s)                                                         
*       ex: This code is freely given to you and given "AS IS", SO if it damages     
*       your computer, formats your HDs, or burns your house I am not the one to
*       blame.                                                                    
*       Moreover, don't forget to include my copyright notices and name.              
*   +------------------------------------------------------------------------------+
*       Author(s): Crooty.co.uk (Adam C)                                   
*   +------------------------------------------------------------------------------+
*/ 

$data .= "
<style>
td,body
{
	font-family: Arial, Helvetica, sans-serif;
	font-size: 8pt;
	color: #444444;
}
</style>
<br>
    <center>
     <div style=\"border-bottom:1px #999999 solid;width:480;\"><b>
       <font size='1' color='#3896CC'>Service Status</font></b>
     </div> 
   </center>
<br>";

//configure script
$timeout = "1";

//set service checks
$port[1] = "80";       $service[1] = "Apache";                  $ip[1] ="";
$port[2] = "21";       $service[2] = "FTP";                     $ip[2] ="";
$port[3] = "3306";     $service[3] = "MYSQL";                   $ip[3] ="";
$port[4] = "25";       $service[4] = "Email(POP3)";             $ip[4] ="";
$port[5] = "143";      $service[5] = "Email(IMAP)";             $ip[5] ="";
$port[6] = "2095";     $service[6] = "Webmail";                 $ip[6] ="";
$port[7] = "2082";     $service[7] = "Cpanel";                  $ip[7] ="";
$port[8] = "80";       $service[8] = "Internet Connection";     $ip[8] ="google.com";
$port[9] = "2086";     $service[9] = "WHM";                     $ip[9] ="";

//
// NO NEED TO EDIT BEYOND HERE 
// UNLESS YOU WISH TO CHANGE STYLE OF RESULTS
//

//count arrays
$ports = count($port);
$ports = $ports + 1;
$count = 1;

//beggin table for status
$data .= "<table width='480' border='1' cellspacing='0' cellpadding='3' style='border-collapse:collapse' bordercolor='#333333' align='center'>";

while($count < $ports){

	 if($ip[$count]==""){
	   $ip[$count] = "localhost";
	 }

		$fp = @fsockopen("$ip[$count]", $port[$count], $errno, $errstr, $timeout);
		if (!$fp) {
			$data .= "<tr><td>$service[$count]</td><td bgcolor='#FFC6C6'>Offline </td></tr>";
		} else {
			$data .= "<tr><td>$service[$count]</td><td bgcolor='#D9FFB3'>Online</td></tr>";
			fclose($fp);
		}
	$count++;
fclose($fp);

} 

//close table
$data .= "</table>";

echo $data;
?>

installation: copy to web server THATS IT!

should be fairly self explanitry

to include on your website you can either link to it your use include(); (if you use include remember to rename the extention to .php)

lemme know what you think :)

i made it so it saves me logging into cpanel to check what the servers up to and thought id share it


UPDATE:
if you wish to display server uptime and server loads on the script add this to the code (REMEMBER: it must be placed inside the <? and ?> for it to work

PHP:
//
// SERVER INFORMATION
//

$data1 .= "
<br>
    <center>
     <div style=\"border-bottom:1px #999999 solid;width:480;\"><b>
       <font size='1' color='#3896CC'>Server Information</font></b>
     </div> 
   </center><BR>";

$data1 .= "<table width='480' border='1' cellspacing='0' cellpadding='3' style='border-collapse:collapse' 

bordercolor='#333333' align='center'>";

//GET SERVER LOADS
$loadresult = @exec('uptime'); 
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/",$loadresult,$avgs);


//GET SERVER UPTIME
  $uptime = explode(' up ', $loadresult);
  $uptime = explode(',', $uptime[1]);
  $uptime = $uptime[0].', '.$uptime[1];

$data1 .= "<tr><td>Server Load Averages </td><td>$avgs[1], $avgs[2], $avgs[3]</td>\n";
$data1 .= "<tr><td>Server Uptime        </td><td>$uptime                     </td></tr>";
$data1 .= "</table>";
echo $data1;

B-)
 
Last edited:
1
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
GoDaddyGoDaddy
Warning: fclose(): supplied argument is not a valid stream resource in /home/username/public_html/status.php on line 71

That is the one error I recieve now when I run the script
 
0
•••
Great.
I am gonna use it.
Thanks a lot.
 
0
•••
xeserve i realy don't know what's going on...maybe some of your server configuration, the script works fine
 
0
•••
glad it helps guys :)

i might rebuild soon and make it a bit nicer to use :D
 
0
•••
I tried Last posted code but i dont get server uptime and load status.....

With first code posted in first post i got error with fscopen...
Is there any new code of this GREAT status script??

THnx
 
0
•••
I just use the following:

PHP:
<?PHP system('uptime'); ?>

Gives out; server time, uptime, users, and load averages.

- Vince
 
0
•••
you can even simplify it to:
PHP:
<?=`uptime`?>
when you just want the uptime/load etc. :P


nice script btw.
 
0
•••
Ok, well..was bored so I thought I'd mess around w/this script :) Here's what I ended up with...
PHP:
<?php

/*
*   +------------------------------------------------------------------------------+
*       CPANEL STATUS SCRIPT
*   +------------------------------------------------------------------------------+
*       Copyright Notice(s)
*   +------------------------------------------------------------------------------+
*       Disclaimer Notice(s)
*       ex: This code is freely given to you and given "AS IS", SO if it damages
*       your computer, formats your HDs, or burns your house I am not the one to
*       blame.
*       Moreover, don't forget to include my copyright notices and name.
*   +------------------------------------------------------------------------------+
*       Author(s): Crooty.co.uk (Adam C)
*   +------------------------------------------------------------------------------+
*/

// Configure script 
$timeout = 1; 

// Set service checks 
$port[1]    = 80;
$service[1] = 'Apache';
$ip[1]      = '';

$port[2]    = 21;
$service[2] = 'FTP';
$ip[2]      = '';

$port[3]    = 3306;
$service[3] = 'MYSQL';
$ip[3]      = '';

$port[4]    = 25;
$service[4] = 'Email(POP3)';
$ip[4]      = '';

$port[5]    = 143;
$service[5] = 'Email(IMAP)';
$ip[5]      = '';

$port[6]    = 2095;
$service[6] = 'Webmail';
$ip[6]      = '';

$port[7]    = 2082;
$service[7] = 'Cpanel';
$ip[7]      = '';

$port[8]    = 80;
$service[8] = 'Internet Connection';
$ip[8]      = 'google.com';

$port[9]    = 2086;
$service[9] = 'WHM';
$ip[9]      = '';

//
// NO NEED TO EDIT BEYOND HERE UNLESS YOU WISH TO CHANGE STYLE OF RESULTS
//

?>
<html>
<head>
<title>Service Status</title>
<style type="text/css">
<!--

td, body
{
  font-family: Arial, Helvetica, sans-serif;
  font-size: 8pt;
  color: #444444;
}

.status_header
{
  border-bottom: 1px solid #999999;
  width: 480;
  color: #3896CC;
}

.status_table
{
  border: 1px solid #333333;
  border-collapse: collapse;
  width: 480;
}

td
{
  border: 1px solid #333333;
}

.online
{
  background-color: #D9FFB3
}

.offline
{
  background-color: #FFC6C6;
}

-->
</style>
</head>

<body>

<br />
<center>
  <div class="status_header"><strong>Service Status</strong></div>
</center>
<br />

<table class="status_table" cellspacing="0" cellpadding="3" align="center">
<?php 

// Count arrays
$ports = count($port) + 1;
$count = 1;

while ($count < $ports)
{
    if ($ip[$count] == '')
    {
        $ip[$count] = 'localhost';
    }

    $fp = @fsockopen($ip[$count], $port[$count], $errno, $errstr, $timeout);

    if (!$fp)
    {
        echo "<tr>\n  <td>{$service[$count]}</td>\n  <td class=\"offline\">Offline</td>\n</tr>\n";
        fclose($fp);
    }
    else
    {
        echo "<tr>\n  <td>{$service[$count]}</td>\n  <td class=\"online\">Online</td>\n</tr>\n";
        fclose($fp);
    }
    $count++;
}

//
// SERVER INFORMATION
//
?>
</table>

<br />
<center>
  <div class="status_header"><strong>Server Information</strong></div>
</center>
<br />

<table class="status_table" cellspacing="0" cellpadding="3" align="center">

<?php

// GET SERVER LOADS
$loadresult = @exec('uptime');
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/", $loadresult, $avgs);

// GET SERVER UPTIME
$uptime = explode(' up ', $loadresult);
$uptime = explode(',', $uptime[1]);
$uptime = $uptime[0] . ', ' . $uptime[1];

echo "<tr>\n  <td>Server Load Averages</td>\n  <td>$avgs[1], $avgs[2], $avgs[3]</td>\n</tr>\n<tr>\n  <td>Server Uptime</td>\n  <td>$uptime</td>\n</tr>\n"; 

?>
</table>

</body>
</html>
 
Last edited:
0
•••
I cant still get uptime, and server load, using the latest post hier.

OS: Centos with CPANEL and Fantastico

Hier is imag of what i get in attachment...
 
Last edited:
0
•••
crow said:
I cant still get uptime, and server load, using the latest post hier.

OS: Centos with CPANEL and Fantastico

Hier is imag of what i get in attachment...


possibly your php installation is causing the trouble.

you need to have the exec() function enabled to run the uptime command.

see line:
PHP:
//GET SERVER LOADS 
$loadresult = @exec('uptime');
 
0
•••
This looks good, thank you :)
 
0
•••
0
•••
what code did you tried?
there are several versions here...
 
0
•••
JFS said:
what code did you tried?
there are several versions here...

Fixed it but it shows my mysql is doqn when its up i am running a few sites on mysql and they are working right now.
 
0
•••
I'm seeing offline for your MySQL :D
 
0
•••
tanfwc said:
I'm seeing offline for your MySQL :D

Yes thats the prob my sql is not offline its online its working.

EDIT: Contacted my datacenter they said they have closed the mysql port for security they said it was a high risk, any one know a way around this?
 
Last edited:
0
•••
a easy way is to connect to the database normally, if it can connect then it would show the MySql online if not it would show offline
 
0
•••
Last edited:
0
•••
blimey, is this topic still going? O_o

This got more interest than I expected, sorry for the errors you guys have been getting. I was pretty new to PHP when I developed this for the first time.

I have started work on another version of this which I will hopefully finish tonight and get uploaded for you all to view some time tomorrow. Again the first script was very basic and I have been working to keep it as basic as possible again.

Im glad people have found it usefull :)
 
0
•••
0
•••
Appraise.net

We're social

Escrow.com
Spaceship
Domain Recover
CryptoExchange.com
Catchy
URLs.com
NameFit
  • The sidebar remains visible by scrolling at a speed relative to the page’s height.
Back