Artykuły na każdy temat
[PHP] Pobieranie uptime serwera
<?php
function get_uptime()
{
// Windows
if(php_uname('s') == 'Windows NT') // lub if(strtolower(substr(PHP_OS, 0, 3)) == 'win') lub ... wymyśl coś sam
{
$is_windows = true;
$cmd = 'net statistics server';
}
// Mac, Linux, Unix
else // if(php_uname('s') == 'Darwin' || php_uname('s') == 'Linux' || php_uname('s') == 'Unix') i tak dalej
{
$cmd = 'uptime'; // lub 'cat /proc/uptime' lub '/usr/bin/uptime' lub ... wymyśl coś sam
}
$stats = shell_exec($cmd);
if($is_windows)
{
preg_match('#\d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d{1,2} (?:AM|PM){1}#', $stats, $matches);
$time = time() - strtotime($matches[0]);
$uptime[] = intval($time % 60); // Sekundy
$uptime[] = intval($time / 60 % 60); // Minuty
$uptime[] = intval($time / 3600 % 24); // Godziny
$uptime[] = intval($time / 86400); // Dni
// $uptime[] = intval($seconds / 31536000) // Lata?
}
else
{
// Musisz dopisać kawałek kodu, który został zalinkowany**
}
return $uptime;
}
function format_uptime()
{
// Tutaj powinień być kod do odmiany sekund, minut, godzin, dni i ewentualnie lat*
}
var_dump(get_uptime());
?>
Oczywiście jeżeli ruszamy takie zagadnienia to trzeba pamiętać i mieć na uwadze fakt, że po pierwsze wymagane są uprawnienia do wykonywania poleceń systemowych i po drugie trzeba mieć na względzie jakiś cache żeby nie męczyć ale o tym chyba już wiecie
Komentarze
Dodaj komentarz