Last active
May 30, 2024 02:15
-
-
Save jvhaarst/4388108 to your computer and use it in GitHub Desktop.
Raspberry Pi Sysinfo Script from http://pastebin.com/9ajmhwBg , description at http://andrum99.blogspot.nl/2012/10/sysinfo-script-for-raspberry-pi.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| header("Cache-Control: no-cache, must-revalidate"); | |
| header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); | |
| header("Pragma: no-cache"); | |
| function human_filesize($bytes, $decimals = 2) { | |
| $sz = 'BKMGTP'; | |
| $factor = floor((strlen($bytes) - 1) / 3); | |
| return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor]; | |
| } | |
| $current_time = exec("date +'%d %b %Y<br />%T %Z'"); | |
| $frequency = exec("cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq") / 1000; | |
| $processor = str_replace("-compatible processor", "", explode(": ", exec("cat /proc/cpuinfo | grep model"))[1]); | |
| $cpu_temperature = round(exec("cat /sys/class/thermal/thermal_zone0/temp ") / 1000, 1); | |
| $model = trim(exec('cat /sys/firmware/devicetree/base/model')); | |
| //$RX = exec("ifconfig eth0 | grep 'RX bytes'| cut -d: -f2 | cut -d' ' -f1"); | |
| //$TX = exec("ifconfig eth0 | grep 'TX bytes'| cut -d: -f3 | cut -d' ' -f1"); | |
| list($system, $host, $kernel) = preg_split('/\s/', exec("uname -a"), 4); | |
| $host = exec('hostname -f');; | |
| //Uptime | |
| $uptime_array = explode(" ", exec("cat /proc/uptime")); | |
| $seconds = round($uptime_array[0], 0); | |
| $minutes = $seconds / 60; | |
| $hours = $minutes / 60; | |
| $days = floor($hours / 24); | |
| $hours = sprintf('%02d', floor($hours - ($days * 24))); | |
| $minutes = sprintf('%02d', floor($minutes - ($days * 24 * 60) - ($hours * 60))); | |
| if ($days == 0): | |
| $uptime = $hours . ":" . $minutes . " (hh:mm)"; | |
| elseif($days == 1): | |
| $uptime = $days . " day, " . $hours . ":" . $minutes . " (hh:mm)"; | |
| else: | |
| $uptime = $days . " days, " . $hours . ":" . $minutes . " (hh:mm)"; | |
| endif; | |
| // Load averages | |
| $loadavg = file("/proc/loadavg"); | |
| if (is_array($loadavg)) { | |
| $loadaverages = strtok($loadavg[0], " "); | |
| for ($i = 0; $i < 2; $i++) { | |
| $retval = strtok(" "); | |
| if ($retval === FALSE) break; else $loadaverages .= " " . $retval; | |
| } | |
| } | |
| //Memory Utilisation | |
| $meminfo = file("/proc/meminfo"); | |
| for ($i = 0; $i < count($meminfo); $i++) | |
| { | |
| list($item, $data) = preg_split('/:/', $meminfo[$i], 2); | |
| $item = trim(chop($item)); | |
| $data = intval(preg_replace("/[^0-9]/", "", trim(chop($data)))); //Remove non numeric characters | |
| switch($item) | |
| { | |
| case "MemTotal": $total_mem = $data; break; | |
| case "MemFree": $free_mem = $data; break; | |
| case "SwapTotal": $total_swap = $data; break; | |
| case "SwapFree": $free_swap = $data; break; | |
| case "Buffers": $buffer_mem = $data; break; | |
| case "Cached": $cache_mem = $data; break; | |
| default: break; | |
| } | |
| } | |
| $used_mem = $total_mem - $free_mem; | |
| $used_swap = $total_swap - $free_swap; | |
| $percent_free = round(($free_mem / $total_mem) * 100); | |
| $percent_used = round(($used_mem / $total_mem) * 100); | |
| if ($total_swap) { | |
| $percent_swap = round((($total_swap - $free_swap ) / $total_swap) * 100); | |
| $percent_swap_free = round(($free_swap / $total_swap) * 100); | |
| }else{ | |
| $percent_swap = 0; | |
| $percent_swap_free = 0; | |
| } | |
| $percent_buff = round(($buffer_mem / $total_mem) * 100); | |
| $percent_cach = round(($cache_mem / $total_mem) * 100); | |
| $used_mem = human_filesize($used_mem*1024,0); | |
| $used_swap = human_filesize($used_swap*1024,0); | |
| $total_mem = human_filesize($total_mem*1024,0); | |
| $free_mem = human_filesize($free_mem*1024,0); | |
| $total_swap = human_filesize($total_swap*1024,0); | |
| $free_swap = human_filesize($free_swap*1024,0); | |
| $buffer_mem = human_filesize($buffer_mem*1024,0); | |
| $cache_mem = human_filesize($cache_mem*1024,0); | |
| //Disk space check, with sizes reported in kB | |
| exec("df -T -l -BKB -x tmpfs -x devtmpfs -x rootfs", $diskfree); | |
| $count = 1; | |
| while ($count < sizeof($diskfree)) | |
| { | |
| list($drive[$count], $typex[$count], $size[$count], $used[$count], $avail[$count], $percent[$count], $mount[$count]) = preg_split('/\s+/', $diskfree[$count]); | |
| $percent_part[$count] = str_replace( "%", "", $percent[$count]); | |
| $count++; | |
| } | |
| ?> | |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>System Information</title> | |
| <style type="text/css"> | |
| body { | |
| margin:50px 0px; padding:0px; | |
| text-align:center; | |
| } | |
| #Content { | |
| width:320px; | |
| margin:0px auto; | |
| text-align:left; | |
| padding:15px; | |
| border:1px dashed #333; | |
| background-color:#eee; | |
| } | |
| a { | |
| color:black; | |
| padding-top:5px; | |
| display:block; | |
| } | |
| a:hover { | |
| text-decoration:none; | |
| } | |
| td { | |
| font-family:"DejaVu Sans",Arial,Helvetica,sans-serif; | |
| font-size:12px; | |
| vertical-align:top; | |
| padding-left:2px; | |
| padding-right:2px; | |
| background:#FFFFFF; | |
| } | |
| p { | |
| font-family:"DejaVu Sans", Arial, Helvetica, sans-serif; | |
| font-size:12px; | |
| } | |
| h1 { | |
| font-family:"DejaVu Sans", Arial, Helvetica, sans-serif; | |
| font-size:20px; | |
| text-align:center; | |
| } | |
| td.center { | |
| text-align:center; | |
| } | |
| td.head { | |
| font-weight:bold; | |
| padding-top:3px; | |
| padding-bottom:3px; | |
| } | |
| td.right { | |
| text-align:right; | |
| padding-right:6px; | |
| } | |
| table { | |
| width: 320px; border-spacing:0; | |
| border-collapse:collapse; | |
| } | |
| html,body,.darkbackground { | |
| background:#CCCCCC; | |
| } | |
| body { | |
| color:#000000; | |
| } | |
| td.column1 { | |
| width:60px; | |
| } | |
| td.column3 { | |
| width:120px; | |
| } | |
| td.column4 { | |
| width:30px; | |
| } | |
| div#bar1, div#bar2, div#bar3, div#bar4, div#bar5, div#bar6 { | |
| height:12px; | |
| width:0px; | |
| transition:width 2s; | |
| <?php | |
| $agent = ""; | |
| if(isset($_SERVER['HTTP_USER_AGENT'])) | |
| { | |
| $agent = $_SERVER['HTTP_USER_AGENT']; | |
| } | |
| if(strlen(stristr($agent,"applewebkit")) > 0 ) echo "\n\t\t\t\t-webkit-transition:width 2s;\n"; | |
| else if(strlen(stristr($agent,"gecko")) > 0 ) echo "\n\t\t\t\t-moz-transition:width 2s;\n"; | |
| else if(strlen(stristr($agent,"opera")) > 0 ) echo "\n\t\t\t\t-o-transition:width 2s;\n"; | |
| ?> | |
| } | |
| div#bar1 { background-color:#D78787; } | |
| div#bar2 { background-color:#AFD787; } | |
| div#bar3 { background-color:#F7F7AF; } | |
| div#bar4 { background-color:#87AFD7; } | |
| div#bar5 { background-color:#D7AFD7; } | |
| div#bar6 { background-color:#AFD7D7; } | |
| </style> | |
| <script type="text/javascript"> | |
| function updateText(objectId, text) | |
| { | |
| document.getElementById(objectId).textContent = text; | |
| } | |
| function updateHTML(objectId, html) | |
| { | |
| document.getElementById(objectId).innerHTML = html; | |
| } | |
| function updateDisplay() | |
| { | |
| <?php | |
| echo "\n\t\t\t\tupdateText(\"host\",\"$host\");"; | |
| echo "\n\t\t\t\tupdateText(\"model\",\"$model\");"; | |
| echo "\n\t\t\t\tupdateHTML(\"time\",\"$current_time\");"; | |
| echo "\n\t\t\t\tupdateText(\"kernel\",\"$system\" + \" \" + \"$kernel\");"; | |
| echo "\n\t\t\t\tupdateText(\"processor\",\"$processor\");"; | |
| echo "\n\t\t\t\tupdateText(\"freq\",\"$frequency\" + \"MHz\");"; | |
| echo "\n\t\t\t\tupdateText(\"loadavg\",\"$loadaverages\");"; | |
| echo "\n\t\t\t\tupdateHTML(\"cpu_temperature\",\"$cpu_temperature\" + \"℃\");"; | |
| echo "\n\t\t\t\tupdateText(\"uptime\",\"$uptime\");"; | |
| echo "\n\t\t\t\tupdateText(\"total_mem\",\"$total_mem\" );"; | |
| echo "\n\t\t\t\tupdateText(\"used_mem\",\"$used_mem\" );"; | |
| echo "\n\t\t\t\tupdateText(\"percent_used\",\"$percent_used%\");"; | |
| echo "\n\t\t\t\tupdateText(\"free_mem\",\"$free_mem\" );"; | |
| echo "\n\t\t\t\tupdateText(\"percent_free\",\"$percent_free%\");"; | |
| echo "\n\t\t\t\tupdateText(\"buffer_mem\",\"$buffer_mem\" );"; | |
| echo "\n\t\t\t\tupdateText(\"percent_buff\",\"$percent_buff%\");"; | |
| echo "\n\t\t\t\tupdateText(\"cache_mem\",\"$cache_mem\" );"; | |
| echo "\n\t\t\t\tupdateText(\"percent_cach\",\"$percent_cach%\");"; | |
| echo "\n\t\t\t\tupdateText(\"total_swap\",\"$total_swap\" );"; | |
| echo "\n\t\t\t\tupdateText(\"used_swap\",\"$used_swap\" );"; | |
| echo "\n\t\t\t\tupdateText(\"percent_swap\",\"$percent_swap%\");"; | |
| echo "\n\t\t\t\tupdateText(\"free_swap\",\"$free_swap\" );"; | |
| echo "\n\t\t\t\tupdateText(\"percent_swap_free\",\"$percent_swap_free%\");\n"; | |
| ?> | |
| document.getElementById("bar1").style.width = "<?php echo $percent_used; ?>px"; | |
| document.getElementById("bar2").style.width = "<?php echo $percent_free; ?>px"; | |
| document.getElementById("bar3").style.width = "<?php echo $percent_buff; ?>px"; | |
| document.getElementById("bar4").style.width = "<?php echo $percent_cach; ?>px"; | |
| document.getElementById("bar5").style.width = "<?php echo $percent_swap; ?>px"; | |
| document.getElementById("bar6").style.width = "<?php echo $percent_swap_free; ?>px"; | |
| } | |
| </script> | |
| </head> | |
| <body onload="Javascript: updateDisplay();"> | |
| <div id="Content"> | |
| <h1>System Information</h1> | |
| <table> | |
| <tr> | |
| <td colspan="4" class="head center">General Info</td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">Hostname</td> | |
| <td colspan="2" id="host"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">Model</td> | |
| <td colspan="2" id="model"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">System Time</td> | |
| <td colspan="2" id="time"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">Kernel</td> | |
| <td colspan="2" id="kernel"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">Processor</td> | |
| <td colspan="2" id="processor"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">CPU Frequency</td> | |
| <td colspan="2" id="freq"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">Load Average</td> | |
| <td colspan="2" id="loadavg"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">CPU Temperature</td> | |
| <td colspan="2" id="cpu_temperature"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2">Uptime</td> | |
| <td colspan="2" id="uptime"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="4" class="darkbackground"> </td> | |
| </tr> | |
| <tr> | |
| <td colspan="2" class="head right">Memory:</td> | |
| <td colspan="2" class="head" id="total_mem"><?php echo $total_mem . " kB";?></td> | |
| </tr> | |
| <tr> | |
| <td class="column1">Used</td> | |
| <td class="right" id="used_mem"></td> | |
| <td class="column3"><div id="bar1"> </div></td> | |
| <td class="right column4" id="percent_used"></td> | |
| </tr> | |
| <tr> | |
| <td>Free</td> | |
| <td class="right" id="free_mem"></td> | |
| <td><div id="bar2"></div></td> | |
| <td class="right" id="percent_free"></td> | |
| </tr> | |
| <tr> | |
| <td>Buffered</td> | |
| <td class="right" id="buffer_mem"></td> | |
| <td><div id="bar3"></div></td> | |
| <td class="right" id="percent_buff"></td> | |
| </tr> | |
| <tr> | |
| <td>Cached</td> | |
| <td class="right" id="cache_mem"></td> | |
| <td><div id="bar4"></div></td> | |
| <td class="right" id="percent_cach"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="4" class="darkbackground"> </td> | |
| </tr> | |
| <tr> | |
| <td colspan="2" class="head right">Swap:</td> | |
| <td colspan="2" class="head" id="total_swap"></td> | |
| </tr> | |
| <tr> | |
| <td>Used</td> | |
| <td class="right" id="used_swap"></td> | |
| <td><div id="bar5"></div></td> | |
| <td class="right" id="percent_swap"></td> | |
| </tr> | |
| <tr> | |
| <td>Free</td> | |
| <td class="right" id="free_swap"></td> | |
| <td><div id="bar6"></div></td> | |
| <td class="right" id="percent_swap_free"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="4" class="darkbackground"> </td> | |
| </tr> | |
| </table> | |
| <table id="tblDiskSpace"> | |
| <tr> | |
| <td colspan="4" class="head center">Disk Usage</td> | |
| </tr> | |
| <?php | |
| for ($i = 1; $i < $count; $i++) | |
| { | |
| $total = human_filesize(intval(preg_replace("/[^0-9]/", "", trim($size[$i])))*1024,0); | |
| $usedspace = human_filesize(intval(preg_replace("/[^0-9]/", "", trim($used[$i])))*1024,0); | |
| $freespace = human_filesize(intval(preg_replace("/[^0-9]/", "", trim($avail[$i])))*1024,0); | |
| echo "\n\t\t\t<tr>"; | |
| echo "\n\t\t\t\t<td class=\"head\" colspan=\"4\">" . $mount[$i] . " (" . $typex[$i] . ")</td>"; | |
| echo "\n\t\t\t</tr>"; | |
| echo "\n\t\t\t<tr>"; | |
| echo "\n\t\t\t\t<td> </td>"; | |
| echo "\n\t\t\t\t<td>Total Size</td>"; | |
| echo "\n\t\t\t\t<td class=\"right\">" . $total . "</td>"; | |
| echo "\n\t\t\t\t<td class=\"right\"> </td>"; | |
| echo "\n\t\t\t</tr>"; | |
| echo "\n\t\t\t<tr>"; | |
| echo "\n\t\t\t\t<td> </td>"; | |
| echo "\n\t\t\t\t<td>Used</td>"; | |
| echo "\n\t\t\t\t<td class=\"right\">" . $usedspace . "</td>"; | |
| echo "\n\t\t\t\t<td class=\"right\">" . $percent[$i] . "</td>"; | |
| echo "\n\t\t\t</tr>"; | |
| echo "\n\t\t\t<tr>"; | |
| echo "\n\t\t\t\t<td> </td>"; | |
| echo "\n\t\t\t\t<td>Available</td>"; | |
| echo "\n\t\t\t\t<td class=\"right\">" . $freespace . "</td>"; | |
| echo "\n\t\t\t\t<td class=\"right\">" . (100-(floatval($percent_part[$i]))) . "%</td>"; | |
| echo "\n\t\t\t</tr>"; | |
| if ($i < $count-1): | |
| echo "\n\t\t\t<tr><td colspan=\"4\"> </td></tr>"; | |
| endif; | |
| } | |
| ?> | |
| </table> | |
| <table> | |
| <tr> | |
| <td class="right darkbackground"><a href="javascript:location.reload(true);" title="Refresh">Refresh</a></td> | |
| </tr> | |
| <tr> | |
| <td class="right darkbackground"><a href="https://gist.github.com/4388108">Source</a></td> | |
| </tr> | |
| </table> | |
| </div> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Awesome, works like a charm.
thanks for share!