ezservermonitor-web/libs/system.php

72 lines
1.5 KiB
PHP

<?php
require '../autoload.php';
// Hostname
$hostname = php_uname('n');
// OS
if (!($os = shell_exec('/usr/bin/lsb_release -ds | cut -d= -f2 | tr -d \'"\'')))
{
if(!($os = shell_exec('cat /etc/system-release | cut -d= -f2 | tr -d \'"\'')))
{
if (!($os = shell_exec('find /etc/*-release -type f -exec cat {} \; | grep PRETTY_NAME | tail -n 1 | cut -d= -f2 | tr -d \'"\'')))
{
$os = 'N.A';
}
}
}
$os = trim($os, '"');
$os = str_replace("\n", '', $os);
// Kernel
if (!($kernel = shell_exec('/bin/uname -r')))
{
$kernel = 'N.A';
}
// Uptime
if (!($totalSeconds = shell_exec('/usr/bin/cut -d. -f1 /proc/uptime')))
{
$uptime = 'N.A';
}
else
{
$uptime = Misc::getHumanTime($totalSeconds);
}
// Last boot
if (!($upt_tmp = shell_exec('cat /proc/uptime')))
{
$last_boot = 'N.A';
}
else
{
$upt = explode(' ', $upt_tmp);
$last_boot = date('Y-m-d H:i:s', time() - intval($upt[0]));
}
// Current users
if (!($current_users = shell_exec('who -u | awk \'{ print $1 }\' | wc -l')))
{
$current_users = 'N.A';
}
// Server datetime
if (!($server_date = shell_exec('/bin/date')))
{
date_default_timezone_set(@date_default_timezone_get());
$server_date = date('Y-m-d H:i:s');
}
$datas = array(
'hostname' => $hostname,
'os' => $os,
'kernel' => $kernel,
'uptime' => $uptime,
'last_boot' => $last_boot,
'current_users' => $current_users,
'server_date' => $server_date,
);
echo json_encode($datas);