main
This commit is contained in:
+37
-80
@@ -1,23 +1,4 @@
|
||||
<?php
|
||||
/**
|
||||
* System info — RAM/swap, partition usage, and a long table of
|
||||
* installed binary versions.
|
||||
*
|
||||
* Self-contained: no AJAX, no privileged calls. Reads /proc/meminfo,
|
||||
* shells out to `df --block-size=1` to enumerate partitions, then
|
||||
* runs each /usr/local/bin/<Gateway> with `-v` to print version
|
||||
* banners (MMDVMHost, DMRGateway, DMR2YSF/NXDN, YSFGateway,
|
||||
* DGIdGateway, YSF2DMR/P25/NXDN, P25Gateway, NXDNGateway,
|
||||
* M17Gateway, DAPNETGateway).
|
||||
*/
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/config/security_headers.php');
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/config/banner_warnings.inc');
|
||||
setSecurityHeaders();
|
||||
|
||||
// Layer 2 of the default-password protection — see config/banner_warnings.inc.
|
||||
// MUST run BEFORE any output so header('Location: ...') works.
|
||||
pistar_warnings_enforce_redirect();
|
||||
|
||||
// Load the language support
|
||||
require_once('config/language.php');
|
||||
// Load the Pi-Star Release file
|
||||
@@ -30,8 +11,7 @@ require_once('config/version.php');
|
||||
// Retrieve server information
|
||||
$system = system_information();
|
||||
|
||||
function system_information()
|
||||
{
|
||||
function system_information() {
|
||||
@list($system, $host, $kernel) = preg_split('/[\s,]+/', php_uname('a'), 5);
|
||||
$meminfo = false;
|
||||
if (@is_readable('/proc/meminfo')) {
|
||||
@@ -49,9 +29,8 @@ function system_information()
|
||||
'partitions' => disk_list()
|
||||
);
|
||||
}
|
||||
|
||||
function disk_list()
|
||||
{
|
||||
|
||||
function disk_list() {
|
||||
$partitions = array();
|
||||
// Fetch partition information from df command
|
||||
// I would have used disk_free_space() and disk_total_space() here but
|
||||
@@ -64,7 +43,7 @@ function disk_list()
|
||||
$column = trim($column);
|
||||
if($column != '') $columns[] = $column;
|
||||
}
|
||||
|
||||
|
||||
// Only process 6 column rows
|
||||
// (This has the bonus of ignoring the first row which is 7)
|
||||
if(count($columns) == 6) {
|
||||
@@ -88,8 +67,7 @@ function disk_list()
|
||||
return $partitions;
|
||||
}
|
||||
|
||||
function formatSize( $bytes )
|
||||
{
|
||||
function formatSize( $bytes ) {
|
||||
$types = array( 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB' );
|
||||
for( $i = 0; $bytes >= 1024 && $i < ( count( $types ) -1 ); $bytes /= 1024, $i++ );
|
||||
return( round( $bytes, 2 ) . " " . $types[$i] );
|
||||
@@ -105,40 +83,22 @@ function formatSize( $bytes )
|
||||
<meta name="language" content="English" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="Author" content="Andrew Taylor (MW0MWZ)" />
|
||||
<meta name="Description" content="Pi-Star SysInfo" />
|
||||
<meta name="KeyWords" content="Pi-Star" />
|
||||
<meta name="Description" content="CDN SysInfo" />
|
||||
<meta name="KeyWords" content="CDN" />
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||
<meta http-equiv="pragma" content="no-cache" />
|
||||
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
|
||||
<meta http-equiv="Expires" content="0" />
|
||||
<title>Pi-Star - <?php echo $lang['digital_voice']." ".$lang['dashboard']." - ".$lang['update'];?></title>
|
||||
<title>CDN - <?php echo $lang['digital_voice']." ".$lang['dashboard']." - ".$lang['update'];?></title>
|
||||
<link rel="stylesheet" type="text/css" href="css/pistar-css.php" />
|
||||
<script type="text/javascript" src="/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="/jquery-timing.min.js"></script>
|
||||
<style>
|
||||
.progress .bar + .bar {
|
||||
-webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
-moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.progress-info .bar, .progress .bar-info {
|
||||
background-color: #4bb1cf;
|
||||
background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<?php pistar_warnings_render(); ?>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div style="font-size: 8px; text-align: right; padding-right: 8px;">Pi-Star:<?php echo $configPistarRelease['Pi-Star']['Version']?> / Dashboard:<?php echo $version; ?></div>
|
||||
<h1>Pi-Star - <?php echo $lang['digital_voice']." ".$lang['dashboard']." - SysInfo";?></h1>
|
||||
<div style="font-size: 8px; text-align: right; padding-right: 8px;">CDN:<?php echo $configPistarRelease['Pi-Star']['Version']?> / Dashboard:<?php echo $version; ?></div>
|
||||
<h1>CDN - <?php echo $lang['digital_voice']." ".$lang['dashboard']." - SysInfo";?></h1>
|
||||
<p style="padding-right: 5px; text-align: right; color: #ffffff;">
|
||||
<a href="/" style="color: #ffffff;"><?php echo $lang['dashboard'];?></a> |
|
||||
<a href="/admin/" style="color: #ffffff;"><?php echo $lang['admin'];?></a> |
|
||||
@@ -148,20 +108,21 @@ function formatSize( $bytes )
|
||||
</p>
|
||||
</div>
|
||||
<div class="contentwide">
|
||||
<table role="presentation" width="100%" border="0">
|
||||
<tr><th colspan="2">Pi-Star System Information</th></tr>
|
||||
<h2>CDN System Information</h2>
|
||||
<?php
|
||||
// Ram information
|
||||
if ($system['mem_info']) {
|
||||
echo " <tr><td><b>Memory</b></td><td><b>Stats</b></td></tr>\n";
|
||||
echo " <h3>Memory</h3>\n <div class=\"settings-card\">\n";
|
||||
$sysRamUsed = $system['mem_info']['MemTotal'] - $system['mem_info']['MemFree'] - $system['mem_info']['Buffers'] - $system['mem_info']['Cached'];
|
||||
$sysRamPercent = sprintf('%.2f',($sysRamUsed / $system['mem_info']['MemTotal']) * 100);
|
||||
echo " <tr><td align=\"left\">RAM</td><td align=\"left\"><div class='progress progress-info' style='margin-bottom: 0;'><div class='bar' style='width: ".$sysRamPercent."%;'>Used ".$sysRamPercent."%</div></div>";
|
||||
echo " <b>Total:</b> ".formatSize($system['mem_info']['MemTotal'])."<b> Used:</b> ".formatSize($sysRamUsed)."<b> Free:</b> ".formatSize($system['mem_info']['MemTotal'] - $sysRamUsed)."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>RAM</div><div>\n";
|
||||
echo " <div class='meter'><div class='meter-bar' style='width: ".$sysRamPercent."%;'></div><span class='meter-label'>".$sysRamPercent."% used</span></div>\n";
|
||||
echo " <div class=\"field-note\"><b>Total:</b> ".formatSize($system['mem_info']['MemTotal'])." <b>Used:</b> ".formatSize($sysRamUsed)." <b>Free:</b> ".formatSize($system['mem_info']['MemTotal'] - $sysRamUsed)."</div>\n";
|
||||
echo " </div></div>\n </div>\n";
|
||||
}
|
||||
// Filesystem Information
|
||||
if (count($system['partitions']) > 0) {
|
||||
echo " <tr><td><b>Mount</b></td><td><b>Stats</b></td></tr>\n";
|
||||
echo " <h3>Mounted Filesystems</h3>\n <div class=\"settings-card\">\n";
|
||||
foreach($system['partitions'] as $fs) {
|
||||
if ($fs['Used']['value'] > 0 && $fs['FileSystem']['text']!= "none" && $fs['FileSystem']['text']!= "udev") {
|
||||
$diskFree = $fs['Free']['value'];
|
||||
@@ -169,75 +130,71 @@ if (count($system['partitions']) > 0) {
|
||||
$diskUsed = $fs['Used']['value'];
|
||||
$diskPercent = sprintf('%.2f',($diskUsed / $diskTotal) * 100);
|
||||
|
||||
echo " <tr><td align=\"left\">".$fs['Partition']['text']."</td><td align=\"left\"><div class='progress progress-info' style='margin-bottom: 0;'><div class='bar' style='width: ".$diskPercent."%;'>Used ".$diskPercent."%</div></div>";
|
||||
echo " <b>Total:</b> ".formatSize($diskTotal)."<b> Used:</b> ".formatSize($diskUsed)."<b> Free:</b> ".formatSize($diskFree)."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>".$fs['Partition']['text']."</div><div>\n";
|
||||
echo " <div class='meter'><div class='meter-bar' style='width: ".$diskPercent."%;'></div><span class='meter-label'>".$diskPercent."% used</span></div>\n";
|
||||
echo " <div class=\"field-note\"><b>Total:</b> ".formatSize($diskTotal)." <b>Used:</b> ".formatSize($diskUsed)." <b>Free:</b> ".formatSize($diskFree)."</div>\n";
|
||||
echo " </div></div>\n";
|
||||
}
|
||||
}
|
||||
echo " </div>\n";
|
||||
}
|
||||
// Binary Information
|
||||
echo " <tr><td><b>Binary</b></td><td><b>Version</b></td></tr>\n";
|
||||
echo " <h3>Installed Binaries</h3>\n <div class=\"settings-card\">\n";
|
||||
if (is_executable('/usr/local/bin/MMDVMHost')) {
|
||||
$MMDVMHost_Ver = exec('/usr/local/bin/MMDVMHost -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">MMDVMHost</td><td align=\"left\">".$MMDVMHost_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>MMDVMHost</div><div>".$MMDVMHost_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/DMRGateway')) {
|
||||
$DMRGateway_Ver = exec('/usr/local/bin/DMRGateway -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">DMRGateway</td><td align=\"left\">".$DMRGateway_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>DMRGateway</div><div>".$DMRGateway_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/DMR2YSF')) {
|
||||
$DMR2YSF_Ver = exec('/usr/local/bin/DMR2YSF -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">DMR2YSF</td><td align=\"left\">".$DMR2YSF_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>DMR2YSF</div><div>".$DMR2YSF_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/DMR2NXDN')) {
|
||||
$DMR2NXDN_Ver = exec('/usr/local/bin/DMR2NXDN -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">DMR2NXDN</td><td align=\"left\">".$DMR2NXDN_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>DMR2NXDN</div><div>".$DMR2NXDN_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/YSFGateway')) {
|
||||
$YSFGateway_Ver = exec('/usr/local/bin/YSFGateway -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">YSFGateway</td><td align=\"left\">".$YSFGateway_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>YSFGateway</div><div>".$YSFGateway_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/DGIdGateway')) {
|
||||
$DGIdGateway_Ver = exec('/usr/local/bin/DGIdGateway -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">DGIdGateway</td><td align=\"left\">".$DGIdGateway_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>DGIdGateway</div><div>".$DGIdGateway_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/YSF2DMR')) {
|
||||
$YSF2DMR_Ver = exec('/usr/local/bin/YSF2DMR -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">YSF2DMR</td><td align=\"left\">".$YSF2DMR_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>YSF2DMR</div><div>".$YSF2DMR_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/YSF2P25')) {
|
||||
$YSF2P25_Ver = exec('/usr/local/bin/YSF2P25 -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">YSF2P25</td><td align=\"left\">".$YSF2P25_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>YSF2P25</div><div>".$YSF2P25_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/YSF2NXDN')) {
|
||||
$YSF2NXDN_Ver = exec('/usr/local/bin/YSF2NXDN -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">YSF2NXDN</td><td align=\"left\">".$YSF2NXDN_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>YSF2NXDN</div><div>".$YSF2NXDN_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/P25Gateway')) {
|
||||
$P25Gateway_Ver = exec('/usr/local/bin/P25Gateway -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">P25Gateway</td><td align=\"left\">".$P25Gateway_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>P25Gateway</div><div>".$P25Gateway_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/NXDNGateway')) {
|
||||
$NXDNGateway_Ver = exec('/usr/local/bin/NXDNGateway -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">NXDNGateway</td><td align=\"left\">".$NXDNGateway_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>NXDNGateway</div><div>".$NXDNGateway_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/M17Gateway')) {
|
||||
$M17Gateway_Ver = exec('/usr/local/bin/M17Gateway -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">M17Gateway</td><td align=\"left\">".$M17Gateway_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>M17Gateway</div><div>".$M17Gateway_Ver."</div></div>\n";
|
||||
}
|
||||
if (is_executable('/usr/local/bin/DAPNETGateway')) {
|
||||
$DAPNETGateway_Ver = exec('/usr/local/bin/DAPNETGateway -v | cut -d\' \' -f 3-');
|
||||
echo " <tr><td align=\"left\">DAPNETGateway</td><td align=\"left\">".$DAPNETGateway_Ver."</td></tr>\n";
|
||||
echo " <div class=\"field-row\"><div>DAPNETGateway</div><div>".$DAPNETGateway_Ver."</div></div>\n";
|
||||
}
|
||||
echo " </div>\n";
|
||||
?>
|
||||
</table>
|
||||
</div>
|
||||
<div class="footer">
|
||||
Pi-Star web config, © Andy Taylor (MW0MWZ) 2014-<?php echo date("Y"); ?>.<br />
|
||||
Need help? Click <a style="color: #ffffff;" href="https://www.facebook.com/groups/pistarusergroup/" target="_new">here for the Support Group</a><br />
|
||||
Get your copy of Pi-Star from <a style="color: #ffffff;" href="http://www.pistar.uk/downloads/" target="_blank">here</a>.<br />
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user