Cheers for that lifehacker.

If updated the script now to update using ajax.
It's becoming a uber cool server monitoring app

index.php
PHP Code: 
<html>
<
head>
<
style type="text/css">
.
green-circle {
        
background-color#0f0;
        
displayblock;
    
height90px;
    
width90px;
    -
moz-border-radius45px;
    
border-radius45px;}
.
red-circle {
        
background-color#DF0101;
        
displayblock;
        
height90px;
        
width90px;
        -
moz-border-radius45px;
        
border-radius45px;
}
</
style>
<
script language="javascript" type="text/javascript" src="jx.js"></script>
<script type='text/javascript'>
function LoadAll() {
        jx.load("getdata.php",function(data) {
                document.getElementById('container').innerHTML = data;
        },'text');
        setTimeout("LoadAll()",1000);
}
</script>
</head>
<body onload='LoadAll()'>
<div id='container'>

</div>
</body>
</html> 
getdata.php
PHP Code: 
<?php

// Get number of connected users
$cmd "ps aux | grep apache | wc -l";
$output exec($cmd);

// Get CPU load
$uptime exec("uptime");
$parts split("load average:"$uptime);
$load split(", "$parts[1]);

// Get free memory
function get_memory() {
  foreach(
file('/proc/meminfo') as $ri)
    
$m[strtok($ri':')] = strtok('');
  return 
round($m['MemFree'] / 1024);
}


//Parse output
if ($output 140)
{
echo 
"<span class='red-circle'><br /><center>";
printf$output);
echo 
"<br />" get_memory() . "/1024";
echo 
$load[0];
echo 
"</span><br /><br />Server 1";
}
elseif (
$output 140)
{
echo 
"<span class='green-circle'><br /><center>";
printf$output);
echo 
"<br />" get_memory() . "/1024";
echo 
$load[0];
echo 
"</span><br /><br />Server 1<br /><br />";
}


?>
jx.js
PHP Code: 
//V3.01.A - http://www.openjs.com/scripts/jx/
jx = {
        
//Create a xmlHttpRequest object - this is the constructor.
        
getHTTPObject : function() {
                var 
http false;
                
//Use IE's ActiveX items to load the file.
                
if(typeof ActiveXObject != 'undefined') {
                        try {
http = new ActiveXObject("Msxml2.XMLHTTP");}
                        catch (
e) {
                                try {
http = new ActiveXObject("Microsoft.XMLHTTP");}
                                catch (
E) {http false;}
                        }
                
//If ActiveX is not available, use the XMLHttpRequest of Firefox/Mozilla etc. to load the document.
                
} else if (window.XMLHttpRequest) {
                        try {
http = new XMLHttpRequest();}
                        catch (
e) {http false;}
                }
                return 
http;
        },
        
// This function is called from the user's script.
        //Arguments -
        //      url     - The url of the serverside script that is to be called. Append all the arguments to
        //                      this url - eg. 'get_data.php?id=5&car=benz'
        //      callback - Function that must be called once the data is ready.
        //      format - The return type for this function. Could be 'xml','json' or 'text'. If it is json,
        //                      the string will be 'eval'ed before returning it. Default:'text'
        
load : function (url,callback,format) {
                var 
http this.init(); //The XMLHttpRequest object is recreated at every call - to defeat Cache problem in IE
                
if(!http||!url) return;
                if (
http.overrideMimeTypehttp.overrideMimeType('text/xml');

                if(!
format) var format "text";//Default return type is 'text'
                
format format.toLowerCase();

                
//Kill the Cache problem in IE.
                
var now "uid=" + new Date().getTime();
                
url += (url.indexOf("?")+1) ? "&" "?";
                
url += now;

                
http.open("GET"urltrue);

                
http.onreadystatechange = function () {//Call a function when the state changes.
                        
if (http.readyState == 4) {//Ready State will be 4 when the document is loaded.
                                
if(http.status == 200) {
                                        var 
result "";
                                        if(
http.responseTextresult http.responseText;

                                        
//If the return is in JSON format, eval the result before returning it.
                                        
if(format.charAt(0) == "j") {
                                                
//\n's in JSON string, when evaluated will create errors in IE
                                                
result result.replace(/[\n\r]/g,"");
                                                
result = eval('('+result+')');
                                        }

                                        
//Give the data to the callback function.
                                        
if(callbackcallback(result);
                                } else { 
//An error occured
                                        
if(errorerror(http.status);
                                }
                        }
                }
                
http.send(null);
        },
        
init : function() {return this.getHTTPObject();}