daily pastebin goal
17%
SHARE
TWEET

Raspberry Pi Sysinfo Script

a guest Oct 25th, 2012 637 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.         header("Cache-Control: no-cache, must-revalidate");
  3.         header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
  4.         header("Pragma: no-cache");
  5.  
  6.         function NumberWithCommas($in)
  7.         {
  8.                 return number_format($in);
  9.         }
  10.         function  WriteToStdOut($text)
  11.         {
  12.                 $stdout = fopen('php://stdout','w') or die($php_errormsg);
  13.                 fputs($stdout, "\n" . $text);
  14.         }
  15.        
  16.         $current_time = exec("date +'%d %b %Y<br />%T %Z'");
  17.         $frequency = NumberWithCommas(exec("cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq") / 1000);
  18.         $processor = str_replace("-compatible processor", "", explode(": ", exec("cat /proc/cpuinfo | grep Processor"))[1]);
  19.         $cpu_temperature = round(exec("cat /sys/class/thermal/thermal_zone0/temp ") / 1000, 1);
  20.         //$RX = exec("ifconfig eth0 | grep 'RX bytes'| cut -d: -f2 | cut -d' ' -f1");
  21.         //$TX = exec("ifconfig eth0 | grep 'TX bytes'| cut -d: -f3 | cut -d' ' -f1");
  22.         list($system, $host, $kernel) = split(" ", exec("uname -a"), 4);
  23.        
  24.         //Uptime
  25.         $uptime_array = explode(" ", exec("cat /proc/uptime"));
  26.         $seconds = round($uptime_array[0], 0);
  27.         $minutes = $seconds / 60;
  28.         $hours = $minutes / 60;
  29.         $days = floor($hours / 24);
  30.         $hours = sprintf('%02d', floor($hours - ($days * 24)));
  31.         $minutes = sprintf('%02d', floor($minutes - ($days * 24 * 60) - ($hours * 60)));
  32.         if ($days == 0):
  33.                 $uptime = $hours . ":" .  $minutes . " (hh:mm)";
  34.         elseif($days == 1):
  35.                 $uptime = $days . " day, " .  $hours . ":" .  $minutes . " (hh:mm)";
  36.         else:
  37.                 $uptime = $days . " days, " .  $hours . ":" .  $minutes . " (hh:mm)";
  38.         endif;
  39.        
  40.         // load averages
  41.         $loadavg = file("/proc/loadavg");
  42.         if (is_array($loadavg)) {
  43.                 $loadaverages = strtok($loadavg[0], " ");
  44.                 for ($i = 0; $i < 2; $i++) {
  45.                         $retval = strtok(" ");
  46.                         if ($retval === FALSE) break; else $loadaverages .= " " . $retval;
  47.                 }
  48.         }
  49.        
  50.         //Memory Utilisation
  51.         $meminfo = file("/proc/meminfo");
  52.         for ($i = 0; $i < count($meminfo); $i++)
  53.         {
  54.                 list($item, $data) = split(":", $meminfo[$i], 2);
  55.                 $item = trim(chop($item));
  56.                 $data = intval(preg_replace("/[^0-9]/", "", trim(chop($data)))); //Remove non numeric characters
  57.                 switch($item)
  58.                 {
  59.                         case "MemTotal": $total_mem = $data; break;
  60.                         case "MemFree": $free_mem = $data; break;
  61.                         case "SwapTotal": $total_swap = $data; break;
  62.                         case "SwapFree": $free_swap = $data; break;
  63.                         case "Buffers": $buffer_mem = $data; break;
  64.                         case "Cached": $cache_mem = $data; break;
  65.                         default: break;
  66.                 }
  67.         }
  68.         $used_mem = $total_mem - $free_mem;
  69.         $used_swap = $total_swap - $free_swap;
  70.         $percent_free = round(($free_mem / $total_mem) * 100);
  71.         $percent_used = round(($used_mem / $total_mem) * 100);
  72.         $percent_swap = round((($total_swap - $free_swap ) / $total_swap) * 100);
  73.         $percent_swap_free = round(($free_swap / $total_swap) * 100);
  74.         $percent_buff = round(($buffer_mem / $total_mem) * 100);
  75.         $percent_cach = round(($cache_mem / $total_mem) * 100);
  76.         $used_mem = NumberWithCommas($used_mem);
  77.         $used_swap = NumberWithCommas($used_swap);
  78.         $total_mem = NumberWithCommas($total_mem);
  79.         $free_mem = NumberWithCommas($free_mem);
  80.         $total_swap = NumberWithCommas($total_swap);
  81.         $free_swap = NumberWithCommas($free_swap);
  82.         $buffer_mem = NumberWithCommas($buffer_mem);
  83.         $cache_mem = NumberWithCommas($cache_mem);
  84.         //Disk space check
  85.         exec("df -T -l -BM -x tmpfs -x devtmpfs -x rootfs", $diskfree);
  86.         $count = 1;
  87.         while ($count < sizeof($diskfree))
  88.         {
  89.                 list($drive[$count], $typex[$count], $size[$count], $used[$count], $avail[$count], $percent[$count], $mount[$count]) = split(" +", $diskfree[$count]);
  90.                 $percent_part[$count] = str_replace( "%", "", $percent[$count]);
  91.                 $count++;
  92.         }
  93. ?>
  94. <!DOCTYPE html>
  95. <html lang="en">
  96.         <head>
  97.                 <title>Andrew&apos;s Raspberry Pi</title>
  98.                 <!-- <meta http-equiv="refresh" content="60" /> -->
  99.                 <style type="text/css">
  100.                         a
  101.                         {
  102.                                 color:black;
  103.                                 padding-top:5px;
  104.                                 display:block;
  105.                         }
  106.                         a:hover
  107.                         {
  108.                                 text-decoration:none;
  109.                         }
  110.                         td
  111.                         {
  112.                                 font-family:"DejaVu Sans",Arial,Helvetica,sans-serif;
  113.                                 font-size:12px;
  114.                                 vertical-align:top;
  115.                                 padding-left:2px;
  116.                                 padding-right:2px;
  117.                                 background:#FFFFFF;
  118.                         }
  119.                         p
  120.                         {
  121.                                 font-family:"DejaVu Sans", Arial, Helvetica, sans-serif;
  122.                                 font-size:12px;
  123.                         }
  124.                         h1
  125.                         {
  126.                                 font-family:"DejaVu Sans", Arial, Helvetica, sans-serif;
  127.                                 font-size:20px;
  128.                         }
  129.                         td.center
  130.                         {
  131.                                 text-align:center;
  132.                         }
  133.                         td.head
  134.                         {
  135.                                 font-weight:bold;
  136.                                 padding-top:3px;
  137.                                 padding-bottom:3px;
  138.                         }
  139.                         td.right
  140.                         {
  141.                                 text-align:right;
  142.                                 padding-right:6px;
  143.                         }
  144.                         table
  145.                         {
  146.                                 width: 320px; border-spacing:0;
  147.                                 border-collapse:collapse;
  148.                         }
  149.                         html,body,.darkbackground
  150.                         {
  151.                                 background:#CCCCCC;
  152.                         }
  153.                         body
  154.                         {
  155.                                 color:#000000;
  156.                         }
  157.                         td.column1
  158.                         {
  159.                                 width:60px;
  160.                         }
  161.                         td.column3
  162.                         {
  163.                                 width:120px;
  164.                         }
  165.                         td.column4
  166.                         {
  167.                                 width:30px;
  168.                         }
  169.                         div#bar1, div#bar2, div#bar3, div#bar4, div#bar5, div#bar6
  170.                         {
  171.                                 height:12px;
  172.                                 width:0px;
  173.                                 transition:width 2s;
  174.                                 <?php
  175.                                         $agent = "";
  176.                                         if(isset($_SERVER['HTTP_USER_AGENT']))
  177.                                         {
  178.                                                 $agent = $_SERVER['HTTP_USER_AGENT'];
  179.                                         }
  180.                                         if(strlen(stristr($agent,"applewebkit")) > 0 ) echo "\n\t\t\t\t-webkit-transition:width 2s;\n";
  181.                                         else if(strlen(stristr($agent,"gecko")) > 0 ) echo "\n\t\t\t\t-moz-transition:width 2s;\n";
  182.                                         else if(strlen(stristr($agent,"opera")) > 0 ) echo "\n\t\t\t\t-o-transition:width 2s;\n";
  183.                                 ?>
  184.                         }
  185.                         div#bar1 { background-color:#D78787; }
  186.                         div#bar2 { background-color:#AFD787; }
  187.                         div#bar3 { background-color:#F7F7AF; }
  188.                         div#bar4 { background-color:#87AFD7; }
  189.                         div#bar5 { background-color:#D7AFD7; }
  190.                         div#bar6 { background-color:#AFD7D7; }
  191.                 </style>
  192.                 <script type="text/javascript">
  193.                         function updateText(objectId, text)
  194.                         {
  195.                                 document.getElementById(objectId).textContent = text;
  196.                         }
  197.                         function updateHTML(objectId, html)
  198.                         {
  199.                                 document.getElementById(objectId).innerHTML = html;
  200.                         }
  201.                         function updateDisplay()
  202.                         {
  203. <?php
  204.                                 echo "\n\t\t\t\tupdateText(\"host\",\"$host\");";
  205.                                 echo "\n\t\t\t\tupdateHTML(\"time\",\"$current_time\");";
  206.                                 echo "\n\t\t\t\tupdateText(\"kernel\",\"$system\" + \" \" + \"$kernel\");";
  207.                                 echo "\n\t\t\t\tupdateText(\"processor\",\"$processor\");";
  208.                                 echo "\n\t\t\t\tupdateText(\"freq\",\"$frequency\" + \"MHz\");";
  209.                                 echo "\n\t\t\t\tupdateText(\"loadavg\",\"$loadaverages\");";
  210.                                 echo "\n\t\t\t\tupdateText(\"cpu_temperature\",\"$cpu_temperature\" + \"°C\");";
  211.                                 echo "\n\t\t\t\tupdateText(\"uptime\",\"$uptime\");";
  212.  
  213.                                 echo "\n\t\t\t\tupdateText(\"total_mem\",\"$total_mem\" + \" kB\");";
  214.                                 echo "\n\t\t\t\tupdateText(\"used_mem\",\"$used_mem\" + \" kB\");";
  215.                                 echo "\n\t\t\t\tupdateText(\"percent_used\",\"$percent_used%\");";
  216.                                 echo "\n\t\t\t\tupdateText(\"free_mem\",\"$free_mem\" + \" kB\");";
  217.                                 echo "\n\t\t\t\tupdateText(\"percent_free\",\"$percent_free%\");";
  218.                                 echo "\n\t\t\t\tupdateText(\"buffer_mem\",\"$buffer_mem\" + \" kB\");";
  219.                                 echo "\n\t\t\t\tupdateText(\"percent_buff\",\"$percent_buff%\");";
  220.                                 echo "\n\t\t\t\tupdateText(\"cache_mem\",\"$cache_mem\" + \" kB\");";
  221.                                 echo "\n\t\t\t\tupdateText(\"percent_cach\",\"$percent_cach%\");";
  222.  
  223.                                 echo "\n\t\t\t\tupdateText(\"total_swap\",\"$total_swap\" + \" kB\");";
  224.                                 echo "\n\t\t\t\tupdateText(\"used_swap\",\"$used_swap\" + \" kB\");";
  225.                                 echo "\n\t\t\t\tupdateText(\"percent_swap\",\"$percent_swap%\");";
  226.                                 echo "\n\t\t\t\tupdateText(\"free_swap\",\"$free_swap\" + \" kB\");";
  227.                                 echo "\n\t\t\t\tupdateText(\"percent_swap_free\",\"$percent_swap_free%\");\n";
  228. ?>
  229.                                 document.getElementById("bar1").style.width = "<?php echo $percent_used; ?>px";
  230.                                 document.getElementById("bar2").style.width = "<?php echo $percent_free; ?>px";
  231.                                 document.getElementById("bar3").style.width = "<?php echo $percent_buff; ?>px";
  232.                                 document.getElementById("bar4").style.width = "<?php echo $percent_cach; ?>px";
  233.                                 document.getElementById("bar5").style.width = "<?php echo $percent_swap; ?>px";
  234.                                 document.getElementById("bar6").style.width = "<?php echo $percent_swap_free; ?>px";
  235.                         }
  236.                 </script>
  237.         </head>
  238.         <body onload="Javascript: updateDisplay();">
  239.         <h1 class="h1">Andrew&apos;s Raspberry Pi</h1>
  240.                 <table>
  241.                         <tr>
  242.                                 <td colspan="4" class="head center">Network Monitoring</td>
  243.                         </tr>
  244.                         <tr>
  245.                                 <td colspan="2">WAN Ping Statistics</td>
  246.                                 <td colspan="2" class="right"><a href="http://192.168.1.1/cgi-bin/smokeping.cgi?target=WAN">Smokeping</a></td>
  247.                         </tr>
  248.                         <tr>
  249.                                 <td colspan="4" class="darkbackground">&nbsp;</td>
  250.                         <tr>
  251.                         <tr>
  252.                                 <td colspan="4" class="head center">System Information</td>
  253.                         </tr>
  254.                         <tr>
  255.                                 <td colspan="4" class="head center">General Info</td>
  256.                         </tr>
  257.                         <tr>
  258.                                 <td colspan="2">Hostname</td>
  259.                                 <td colspan="2" id="host"></td>
  260.                         </tr>
  261.                         <tr>
  262.                                 <td colspan="2">System Time</td>
  263.                                 <td colspan="2" id="time"></td>
  264.                         </tr>
  265.                         <tr>
  266.                                 <td colspan="2">Kernel</td>
  267.                                 <td colspan="2" id="kernel"></td>
  268.                         </tr>
  269.                         <tr>
  270.                                 <td colspan="2">Processor</td>
  271.                                 <td colspan="2" id="processor"></td>
  272.                         </tr>
  273.                         <tr>
  274.                                 <td colspan="2">CPU Frequency</td>
  275.                                 <td colspan="2" id="freq"></td>
  276.                         </tr>
  277.                         <tr>
  278.                                 <td colspan="2">Load Average</td>
  279.                                 <td colspan="2" id="loadavg"></td>
  280.                         </tr>
  281.                         <tr>
  282.                                 <td colspan="2">CPU Temperature</td>
  283.                                 <td colspan="2" id="cpu_temperature"></td>
  284.                         </tr>
  285.                         <tr>
  286.                                 <td colspan="2">Uptime</td>
  287.                                 <td colspan="2" id="uptime"></td>
  288.                         </tr>
  289.                         <tr>
  290.                                 <td colspan="4" class="darkbackground">&nbsp;</td>
  291.                         </tr>
  292.                         <tr>
  293.                                 <td colspan="2" class="head right">Memory:</td>
  294.                                 <td colspan="2" class="head" id="total_mem"><?php echo $total_mem . " kB";?></td>
  295.                         </tr>
  296.                         <tr>
  297.                                 <td class="column1">Used</td>
  298.                                 <td class="right" id="used_mem"></td>
  299.                                 <td class="column3"><div id="bar1">&nbsp;</div></td>
  300.                                 <td class="right column4" id="percent_used"></td>
  301.                         </tr>
  302.                         <tr>
  303.                                 <td>Free</td>
  304.                                 <td class="right" id="free_mem"></td>
  305.                                 <td><div id="bar2"></div></td>
  306.                                 <td class="right" id="percent_free"></td>
  307.                         </tr>
  308.                         <tr>
  309.                                 <td>Buffered</td>
  310.                                 <td class="right" id="buffer_mem"></td>
  311.                                 <td><div id="bar3"></div></td>
  312.                                 <td class="right" id="percent_buff"></td>
  313.                         </tr>
  314.                         <tr>
  315.                                 <td>Cached</td>
  316.                                 <td class="right" id="cache_mem"></td>
  317.                                 <td><div id="bar4"></div></td>
  318.                                 <td class="right" id="percent_cach"></td>
  319.                         </tr>
  320.                         <tr>
  321.                                 <td colspan="4" class="darkbackground">&nbsp;</td>
  322.                         </tr>
  323.                         <tr>
  324.                                 <td colspan="2" class="head right">Swap:</td>
  325.                                 <td colspan="2" class="head" id="total_swap"></td>
  326.                         </tr>
  327.                         <tr>
  328.                                 <td>Used</td>
  329.                                 <td class="right" id="used_swap"></td>
  330.                                 <td><div id="bar5"></div></td>
  331.                                 <td class="right" id="percent_swap"></td>
  332.                         </tr>
  333.                         <tr>
  334.                                 <td>Free</td>
  335.                                 <td class="right" id="free_swap"></td>
  336.                                 <td><div id="bar6"></div></td>
  337.                                 <td class="right" id="percent_swap_free"></td>
  338.                         </tr>
  339.                         <tr>
  340.                                 <td colspan="4" class="darkbackground">&nbsp;</td>
  341.                         </tr>
  342.                 </table>
  343.                 <table id="tblDiskSpace">
  344.                         <tr>
  345.                                 <td colspan="4" class="head center">Disk Usage</td>
  346.                         </tr>
  347. <?php
  348.         for ($i = 1; $i < $count; $i++)
  349.         {
  350.                 $total = NumberWithCommas(intval(preg_replace("/[^0-9]/", "", trim($size[$i])))) . " MB";
  351.                 $usedspace = NumberWithCommas(intval(preg_replace("/[^0-9]/", "", trim($used[$i])))) . " MB";
  352.                 $freespace = NumberWithCommas(intval(preg_replace("/[^0-9]/", "", trim($avail[$i])))) . " MB";
  353.                 echo "\n\t\t\t<tr>";
  354.                 echo "\n\t\t\t\t<td class=\"head\" colspan=\"4\">" . $mount[$i] . " (" . $typex[$i] . ")</td>";
  355.                 echo "\n\t\t\t</tr>";
  356.                 echo "\n\t\t\t<tr>";
  357.                 echo "\n\t\t\t\t<td>&nbsp;</td>";
  358.                 echo "\n\t\t\t\t<td>Total Size</td>";
  359.                 echo "\n\t\t\t\t<td class=\"right\">" . $total . "</td>";
  360.                 echo "\n\t\t\t\t<td class=\"right\">&nbsp;</td>";
  361.                 echo "\n\t\t\t</tr>";
  362.                 echo "\n\t\t\t<tr>";
  363.                 echo "\n\t\t\t\t<td>&nbsp;</td>";
  364.                 echo "\n\t\t\t\t<td>Used</td>";
  365.                 echo "\n\t\t\t\t<td class=\"right\">" . $usedspace . "</td>";
  366.                 echo "\n\t\t\t\t<td class=\"right\">" . $percent[$i] . "</td>";
  367.                 echo "\n\t\t\t</tr>";
  368.                 echo "\n\t\t\t<tr>";
  369.                 echo "\n\t\t\t\t<td>&nbsp;</td>";
  370.                 echo "\n\t\t\t\t<td>Available</td>";
  371.                 echo "\n\t\t\t\t<td class=\"right\">" . $freespace . "</td>";
  372.                 echo "\n\t\t\t\t<td class=\"right\">" . (100-(floatval($percent_part[$i]))) . "%</td>";
  373.                 echo "\n\t\t\t</tr>";
  374.                 if ($i < $count-1):
  375.                         echo "\n\t\t\t<tr><td colspan=\"4\">&nbsp;</td></tr>";
  376.                 endif;
  377.         }
  378. ?>
  379.                 </table>
  380.                 <table>
  381.                         <tr>
  382.                                 <td class="right darkbackground"><a href="javascript:location.reload(true);" title="Refresh">Refresh</a></td>
  383.                         </tr>
  384.                 </table>
  385.         </body>
  386. </html>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top