DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 24. 07. 2005.   #1
twix
Web designer
Professional
 
Avatar twix
 
Datum učlanjenja: 09.06.2005
Lokacija: New York
Poruke: 358
Hvala: 52
724 "Hvala" u 64 poruka
twix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskoro
Pošaljite poruku preko Skype™ za twix
Default Server status

Ovo moze slobodno da ide u i linux sekciju
Konkretno zanima me kako bi isao output za status servera, pokrenutih servisa i njihov uptime (znaci koliko dugo je vec aktivan taj daemon, tipa apache)

Kôd:
<?php

function checkd($daemon,$name) {
  $ps ="ps ax | grep $daemon | wc -l";
  $origps = exec($ps);
  $minone = $origps-2;
  if ($minone<1) {
      $dataps = "only <b><font color=red>$minone</font> daemon</b> for <b>$daemon</b>,
       <br><b><font color=red>$name TOTALY DOWN</font></b><br>";
      }
  if ($minone==1) {
      $dataps = "<b><font color=blue>up</font></b> only with <b><font color=red>$minone</font> $daemon daemon</b><br>";
      }
  if ($minone>1) {
      $dataps = "<b><font color=blue>up</font></b> with <b><font color=red>$minone</font> $daemon daemons</b><br>";
      }
      return $dataps;
}
echo checkd("mysqld","mysql daemon");
echo checkd("httpd","httpd daemon");
?>
Ovo je jednostavan example koji sam nasao, ali ne znam kako tacno ide u linuxu komanda za proveru uptime-a nekog procesa, da tako kazem
twix je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #2
nixa
Nikola Denić
Sir Write-a-Lot
 
Avatar nixa
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 3.694
Hvala: 160
458 "Hvala" u 164 poruka
nixa ima spektakularnu aurunixa ima spektakularnu aurunixa ima spektakularnu aurunixa ima spektakularnu aurunixa ima spektakularnu auru
Pošaljite poruku preko Skype™ za nixa
Default

uhm .. znam da beše neko čudo koje je to radilo i to je open sorce .. ček da se javi bluesman on je radio sa tim
__________________
Do not ask yourself what the world needs. Ask yourself what makes you come alive, and then go do that. Because what the world needs is people who have come alive
nixa je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #3
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Ja sam se samo igrao sa server load, pokušavao sam da iz PHP saznam koji je load servera. Hteo sam dobijene podatke da koristim za neki simple "load balancing". Nisam došao do pouzdanog rešenja, možda zato što mi fali malo advanced linux znanja.

A ovo je malo tricky, ako je apache, myslq ... down, velika je šansa i da je ceo server down a onda je nelogično izvršavati script na serveru koji je verovatno down. Ja sam imao drugu ideju, da na drugom serveru slušam neki treći server... ali nisam išao dalje od ideje.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #4
twix
Web designer
Professional
 
Avatar twix
 
Datum učlanjenja: 09.06.2005
Lokacija: New York
Poruke: 358
Hvala: 52
724 "Hvala" u 64 poruka
twix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskoro
Pošaljite poruku preko Skype™ za twix
Default

Server load, etc.

Kôd:
<?php

// VHost Address...

$vHost = @getenv(SERVER_NAME);

if (!$vHost) {

  $vHost = "(N/A)";

}

// Host Server Name...

$fp = @fopen("/proc/sys/kernel/hostname","r");

if ($fp) {

$serverName = trim(fgets($fp, 4096));

$serverName = gethostbyname($serverName);

$serverName = gethostbyaddr($serverName);

fclose($fp);

} else {

$serverName = "(N/A)";

}

// Server or Dedicated IP...

$IPAddress = getenv("SERVER_ADDR");

// Operating system...

$fp = @fopen("/proc/version", "r");

if ($fp) {

$temp = fgets($fp);

fclose($fp);

if (preg_match("/version (.*?) /", $temp, $OSArray)) {

$kernel = $OSArray[1];

preg_match("/[0-9]{5,} (\((.* *)\)\))/", $temp, $OSArray);

$flavour = $OSArray[2];

$operatingSystem = $flavour." (".PHP_OS." ".$kernel.")";

if (preg_match("/SMP/", $buf)) {

$operatingSystem .= " (SMP)";

  }

} else {

    $result = "(N/A)";

  }

} else {

  $result = "(N/A)";

}

// Users and load information...

$rawUptime = trim(exec("uptime"));

if ($rawUptime) {

  if (preg_match("/, *(\d) (users?), .*: (.*), (.*), (.*)/", $rawUptime, $uptime)) {

    $users[0] = $uptime[1];

    $users[1] = $uptime[2];

    $loadNow = $uptime[3];

    $load15 = $uptime[4];

    $load30 = $uptime[5];

  }

} else {

  $users[0] = "Unavailable";

  $users[1] = "--";

  $loadNow = "Unavailable";

  $load15 = "--";

  $load30 = "--";

}

// CPUs Stuff...

$fp = @fopen("/proc/cpuinfo", "r");

if ($fp) {

  while ($temp = fgets($fp, 4096)) {

    $temp = trim($temp);

    $thing = preg_split("/\s+:\s+/", $temp, 2);

    switch ($thing[0]) {

      case "model name":

        $CPUModel = $thing[1];

        break;

      case "cpu MHz":

        $CUPSize = sprintf("%.2f", $thing[1]);

        break;

      case "cycle frequency [Hz]":

        $CUPSize = sprintf("%.2f", $thing[1] / 1000000);

        break;

      case "bogomips":

        $BOGO += $thing[1];

        break;

      case "processor":

        $CPUs += 1;

        break;

    }

  }

fclose($fp);

} else {

  $CPUModel = "(Not Available)";

  $CUPSize = "--";

  $BOGO = "--";

  $CPUs = "--";

}

?>

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE><?=$_GET[server]?> Statistics</TITLE>
</HEAD>
<BODY>

<P><B>Server Statistics (<?=$_GET[server]?>):</B><FONT color="#808080"><BR>

<?=$vHost?> </FONT>on <FONT color="#808080"><?=$serverName?> </FONT>(<FONT color="#808080"><?=$IPAddress?></FONT>)<BR>

Running <FONT color="#808080"><?=$operatingSystem?></FONT>; <FONT color="#808080"><?=$users[0]?> </FONT>current active <?=$users[1]?>.<BR>

With <FONT color="#808080"><?=$CUPs?></FONT> CPU: <FONT color="#808080"><?=$CPUModel?></FONT> 

<SMALL>(actual measured speed: <FONT color="#808080"><?=$CUPSize?>KHz - <?=$BOGO?> bogomips</FONT>)</SMALL>.<BR>

Current load: <FONT color="#808080"><?=$loadNow?></FONT>; 15 minute load average: <FONT color="#808080"><?=$load15?></FONT>; 30 minute load average: <FONT color="#808080"><?=$load30?></FONT>.</P>

</BODY>
</HTML>
Pomoci ce ti ovo parce code-a

E sad posto ja ne znam programiranje, znam sta i kako radi, ali nazalost ne znam sam da napisem svoj code, trebao bi mi status kao onaj na jabber.elitsecurity.org, znaci koliko dana, sati, minuta je neki daemon podignut.

Ehh da imam vase php znanje
twix je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #5
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Na žalost, na prvi pogled ovaj tvoj kod radi samo na specijalnim i prilično "bušnim" serverima. Tako da bi ti na "bezbednijim" ili "paranoičnijim" serverima, recimo
PHP kôd:
$fp = @fopen("/proc/sys/kernel/hostname","r"); 
Automatski generisao grešku da nemaš prava pristupa.

Zato kažem da nisam našao zadovoljavajuće rešenje.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #6
twix
Web designer
Professional
 
Avatar twix
 
Datum učlanjenja: 09.06.2005
Lokacija: New York
Poruke: 358
Hvala: 52
724 "Hvala" u 64 poruka
twix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskoro
Pošaljite poruku preko Skype™ za twix
Default

Kôd:
twix@twixbox:/var/www # ps -eo etime,cmd | grep "apache2"
   01:15:57 /usr/sbin/apache2 -k start -DSSL
   01:15:56 /usr/sbin/apache2 -k start -DSSL
   01:15:56 /usr/sbin/apache2 -k start -DSSL
   01:15:56 /usr/sbin/apache2 -k start -DSSL
   01:15:56 /usr/sbin/apache2 -k start -DSSL
   01:15:56 /usr/sbin/apache2 -k start -DSSL
   01:13:02 /usr/sbin/apache2 -k start -DSSL
   01:06:22 /usr/sbin/apache2 -k start -DSSL
      00:00 grep apache2
twix@twixbox:/var/www #
E sad, kako da splitujem ovo, kako se vec kaze, da mi izbaci

Apache je pokrenut 1 sat i 15 minuta .

E sad, ne znam kako ce to da bude ako je pokrenut recimo 20 dana, kako da ispise:

Apache je pokrenut 20 dana, 1 sat i 15 minuta .

Sto se tice cat /proc/sys/kernel/hostname moguce da na nekim serverima ne mozes to da pogledas, ali do sada nisam naisao na sistem gde je to zabranjeno, ako nista, barem:

twix@twixbox:/var/www # uname -a
Linux twixbox 2.6.10-5-386 #1 Tue Apr 5 12:12:40 UTC 2005 i686 GNU/Linux
twix@twixbox:/var/www #


Hvala,
twix je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #7
marinowski
Igor Marinović
Expert
 
Avatar marinowski
 
Datum učlanjenja: 09.06.2005
Lokacija: Palić
Poruke: 549
Hvala: 31
39 "Hvala" u 17 poruka
marinowski is on a distinguished road
Pošaljite ICQ poruku za marinowski
Default

Ne mogu baš da nađem opravdanje i razumevanje za prikaz informacije o uptimeu procesa. Obično je to irelevantno za korisnika, interesantno je eventualno za administratore koji ionako to mogu videti na drugi način. Jeste dugačak uptime ponos, ali ne govori mnogo.

Doduše, ima i primera kada je prikazana sistemska informacija korisna: primer je (inače odličan) sajt http://www.sxc.hu/ ... Tamo prikazuju koliko je opterećenje servera, pa se korisnik moli da se obuzda ukoliko vidi da je dogorelo do nokata

A za load balancing servera svakako treba jača artiljerija od običnog php-a.
marinowski je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #8
marinowski
Igor Marinović
Expert
 
Avatar marinowski
 
Datum učlanjenja: 09.06.2005
Lokacija: Palić
Poruke: 549
Hvala: 31
39 "Hvala" u 17 poruka
marinowski is on a distinguished road
Pošaljite ICQ poruku za marinowski
Default

Ali ajde da budem konstruktivan: ovo ce ti resiti posao:

Kôd:
<?
$process = 'apache';
$uptime = exec("ps -eo etime,cmd T| grep $process |head -1 |cut -f 1 -d '/'");
if (preg_match("/(\d*)-?(\d\d):(\d\d):(\d\d) *$/",$uptime, $m)) {
    $dan = $m[1]?"$m[1] dana":'';
    $sat = $m[2]?"$m[2] sati":'';
} else {
    preg_match("/(\d*)-?(\d*):?(\d\d):(\d\d) *$/",$uptime, $m);
}

print "$process je pokrenut: $dan $sat $m[3] minuta $m[4] sekundi";

?>
Nije najelegantnije, ali radi sa svim outputima, makar proces radio minute, sate, ili dane. Oprez! ovo ti na nekim sistemima nece raditi, npr. na FreeBSD-u, tamo je ps komanda drugacija.
marinowski je offline   Odgovorite uz citat
Staro 25. 07. 2005.   #9
twix
Web designer
Professional
 
Avatar twix
 
Datum učlanjenja: 09.06.2005
Lokacija: New York
Poruke: 358
Hvala: 52
724 "Hvala" u 64 poruka
twix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskorotwix će postati "faca" uskoro
Pošaljite poruku preko Skype™ za twix
Default

Zigor hvala puno, ovo mi je trebalo!

Citat:
btw:

"Ne mogu baš da nađem opravdanje i razumevanje za prikaz informacije o uptimeu procesa. Obično je to irelevantno za korisnika, interesantno je eventualno za administratore koji ionako to mogu videti na drugi način. Jeste dugačak uptime ponos, ali ne govori mnogo."
Ovo i radim za jednog druga koji odrzava neki server, treba mi da uradim info o servisima, ali postoji i info strana za korisnike, gde mogu da vide recimo da li je aktivan jabber server i koliko dugo je pokrenut

Hvala jos jednom, pozdrav..
twix je offline   Odgovorite uz citat
Staro 26. 07. 2005.   #10
nixa
Nikola Denić
Sir Write-a-Lot
 
Avatar nixa
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 3.694
Hvala: 160
458 "Hvala" u 164 poruka
nixa ima spektakularnu aurunixa ima spektakularnu aurunixa ima spektakularnu aurunixa ima spektakularnu aurunixa ima spektakularnu auru
Pošaljite poruku preko Skype™ za nixa
Default

pa ne moras da tako gledas da li je aktivan jabber server ... direktno komuniciraj sa jabberd-om
__________________
Do not ask yourself what the world needs. Ask yourself what makes you come alive, and then go do that. Because what the world needs is people who have come alive
nixa je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Status servisa na serveru, provera? pcigre Web Hosting, web serveri i operativni sistemi 9 22. 01. 2009. 21:11
Domen ističe za godinu dana a ima status PENDING DELETE RESTORABLE ?! Nenad Vasić Domain Name Service (DNS) 7 30. 06. 2008. 03:22
Limundo status nagradne igre Milos Micic e-Business 42 13. 06. 2007. 15:44
Server vs. UTF-8 Milos Vukotic Web Hosting, web serveri i operativni sistemi 18 02. 02. 2006. 00:22


Vreme je GMT +2. Trenutno vreme je 01:21.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.