Upptími apache
Skrifað af Birkir Rafn Guðjónsson þann 17. desember 2007 - 19:43
3 athugasemdir skrifaðar - toppur / botn
Fjöldi lestra: 925
Með þessu geturu fundið upptíma apache í windows og kannski unix hef ekki prufað það né nennt að athuga það. Ættir að geta nota þetta á fleira sem býr til skrá þegar forritið opnast. Ættir að geta notað svona möguleika líka til að athuga hvort kveikt sé á forriti.

Demo: http://benzincrew.com/php/upptimi.php
 1 |
 2 |
 3 |
 4 |
 5 |
 6 |
 7 |
 8 |
 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
<?

/**
 * @author Birkir Rafn Guðjónsson
 * @copyright 2007
**/

# Hvar er logs mappan í apache
$hvar 'c:/www/logs/';

# Finnum hvenær skráin var búin til
$upptimi filemtime($hvar."httpd.pid");


# Tíminn í dag - tíminn sem skrá var gerð
$up time() - $upptimi;

# Talan er í sec, deilum með 86400 og námundum töluna
$dagar floor($up 86400);

# Drögum frá þá daga sem voru gerðir
$up -= ($dagar 86400);

# Talan er enn í sec, deilum með 3600
$klst floor($up 3600);

# Drögum frá þær klukkustundir sem eftir voru
$up -= ($klst 3600);

# Talan auðvitað í sec, deilum með 60
$min floor($up 60);

# Drögum frá þær mínútur sem voru
$up -= ($min 60);

# Sekúndur sem eftir eru
$sek $up;


$upptimi      $dagar.(($dagar || $dagar 1) ? ' Dagar, ' ' Dagur, ')
            . 
$klst.(($klst >= || $klst 1) ? ' Klukkustundir, ' ' Klukkustund, ')
            . 
$min.(($min >= || $min 1) ? ' Mínútur, ' ' Mínúta, ')
            . 
$sek.(($sek >= || $sek 1) ? ' Sekúndur' ' Sekúnda');

echo 
$upptimi;
?>



2. janúar 2008 - 22:28
#1 - Haffi
Fann auðveldari útsetningu á þessu..

<?php
$uptime
= @exec('uptime');
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/",$uptime,$avgs);
$uptime = explode(' up ', $uptime);

$uptime = explode(',', $uptime[1]);

if (
strpos($uptime[0],"day")===false){
  if (
strpos($uptime[0],"min")===false){
   
$days = 0;
    list(
$hours, $minutes) = explode(':',trim($uptime[0]));
  }
  else{
   
$days = $hours = 0;
   
$minutes = (int)$uptime[0];
  }
}
else{
 
$days = (int)$uptime[0];
  list(
$hours, $minutes) = explode(':',trim($uptime[1]));
}

$hours = (int)$hours;
$minutes = (int)$minutes;

$server = gethostbyaddr ($_SERVER['SERVER_ADDR']);

// Prentum allt út
echo "Nafn netþjóns: $server<br />Uppitími: $days dagar, $hours klst og $minutes mínútur";
?>


En þetta er flott hjá þér :)

Já, þetta er meira kennslu dæmi hvernig hægt er að nota þennann möguleika til að sjá hvenær síðast var breitt einhverri skrá. Og þeirri hugmynd ef forrit býr til skrá eða breitir skrá í hvert skipti sem það opnast, er hægt að fá upptíma forritsins sjálfs. En ekki stýrikerfissins.

Svo held ég að þetta virki ekki á Windows hjá þér þarna, þar sem "uptime" er ekki command í Windows.

23. apríl 2010 - 18:41
#3 - Svavar Kjarrval
Mér líst illa á aðferðirnar í báðum scriptunum.

Scripta Birkirs:
Hún krefst þess að maður leyfi PHP aðgang að www logging möppunni sem er eitthvað sem ég myndi forðast nema það sé einfaldlega ekki til betri aðferð. Þar að auki mætti notast við modulus til að framkvæma útreikningana.

Scripta Haffa:
Kóðinn byggir á kerfiskalli sem leiðir til þess að maður þarf að opna fyrir þá virkni í php.ini. Önnur ástæða er að hún kallar í gethostbyaddr() sem gæti leitt til DNS uppflettingar.

Möguleg leið:
Virkja mod_status og ná í upplýsingarnar þaðan. Þetta ætti að virka í Apache óháð stýrikerfi. Til að óviðkomandi aðilar komist ekki í upplýsingarnar er einfaldlega hægt að skella inn order deny færslu fyrir mod_status sem byggist á IP tölu (t.d. 127.0.0.1).

Kosturinn er sá að þetta byggist ekki á því að opna skráaraðgang á forboðna staði á harða disknum og byggist ekki á DNS uppflettingu. Einnig er hægt að fá um leið fleiri upplýsingar sem Apache veitir.

Ókosturinn er samt að hér er um að ræða URL aðgang sem gæti lengt keyrslutímann. Ef vefþjónninn er hraður ætti þetta ekki að vera svo lengi að einhver taki eftir því. Á meðan þessi kóði er ekki keyrður oft á sekúndu ætti það varla að skipta máli.




Nafn:


Netfang:


Veffang:


Hvað er tólf plús einn?



Skilaboð: