Linode information script

Here is the script I use to get information about my linode from my linode VPS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/php
<?php
 
# Edit this with your linode number
$LINODE="linodeXXXXX";
 
function human ( $num ) {
  if ($num<1024) {
    $str = strval($num)." K";
  } elseif ($num<(1024*1024)) {
    $str = strval(intval(floor($num/1024)))." M";
  } else {
    $str = strval(intval(floor($num/(1024*1024))))." G";
  }
  return $str;
}
 
function kb ( $bytes ) {
  $bytes /=1024;
  return $bytes;
}
 
$xml = simplexml_load_file("http://www.linode.com/members/info/?user=$LINODE");
 
$bwdata = $xml->bwdata;
$year = $bwdata->year;
$month = $bwdata->month;
 
$host = $xml->host->host;
 
// $bw_max = round ( GB( floatval( $xml->bwdata->max_avail ) ), 2 ) ;
$dl = round(kb(floatval($bwdata->rx_bytes)),2);
$ul = round(kb(floatval($bwdata->tx_bytes)),2);
$total = round(kb(floatval($bwdata->total_bytes)),2);
$limit = round(kb(floatval($bwdata->max_avail)),2);
 
$precentage = round($total/$limit*100,0)."%";
 
echo ("Host: ".$xml->host->host);
echo("\n");
echo("Month: $month/$year\n");
echo("\n");
echo ("Current load: ".$xml->host->hostLoad);
echo("\n");
echo ("CPU usage: ".$xml->cpuConsumption ."%\n");
echo ("Pending jobs: ".$xml->host->pendingJobs);
echo("\n");
echo("\n");
echo("Uploaded: ".human($ul)."\n");
echo("Downloaded: ".human($dl)."\n");
echo("Total use: ".human($total)." from ".human($limit)." allowed ($precentage)\n");
echo("\n");
 
?>

It is largely based on the PHP script you can find on Linode wiki but displays all available information and doesn’t use a temporary file saved locally.

Sample output:

$ ./lininfo 
Host: newark11.linode.com
Month: 7/2009
 
Current load: idle
CPU usage: 2.2245%
Pending jobs: 0
 
Uploaded: 468 M
Downloaded: 116 M
Total use: 585 M from 200 G allowed (0%)