Projektowanie stron WWW od podszewki
Losowy artykuł: [PHP] Zagadka Einsteina

Artykuły na każdy temat

[PHP] Pobieranie uptime serwera

Dodano 06.01.2012r. o 21:23
Ponieważ ostatnimi czasy mocno rozleniwiłem się przez Sobak'a to walimy prosto z mostu.
Kod:
<?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 Smile
 {
  $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 Smile

* Ponieważ nie lubię odkrywać koła na nowo to osoby zainteresowane muszą w swojej gestii poszukać gotowego rozwiązania dotyczącego -> patrz komentarz w funkcji format_uptime(). Coś na wzór tego tylko z mniejsza ilością "syfu" w kodzie. Gotowe rozwiązanie wisi gdzieś na forum.php.pl - tak dla podpowiedzi.
** Tak jak powiedziałem na górze "nie lubię odkrywać koła na nowo" to polecam ten artykuł. Gdyby linki kiedyś wygasły to tutaj mirror screenshot numer 1 i numer 2.

I bym zapomniał na koniec. Dla tych, co chcą w JS polecam ten pseudokod, który wymaga drastycznych modyfikacji... Gdyby adres kiedyś wygasł to dajcie cynk to zapodam mirror'a.

Komentarze

Brak komentarzy

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)