[ zaraza @ 30.12.2008. 19:41 ] @
Trebalo bi da napisem skriptu koja ce nadgledati uptime nekog servera (ili vise njih). Znaci, svakih xx minuta treba ispitati da li je server ziv.
Kako vi mislite da ovo treba odraditi?
Koriscenjem iskljucivo PHP-a - u tom slucaju ne znam kako bih pozivao skriptu periodicno, ili pisanjem pomocnog programa koji bi bio instaliran na serveru u u neku bazu belezio potrebne podatke?
[ Nemanja Avramović @ 30.12.2008. 20:25 ] @
Ne mogu sad da probam, ali ovako nekako:

Code:
$uptime = system('uptime');


A za periodicno pozivanje skripte, vidi ovo: http://www.elitesecurity.org/p1552031
[ mulaz @ 30.12.2008. 20:44 ] @
jel samo serveri moraju php, ili mora i onaj koji ih nadgleda da koristi php?

inace ako uradis ovo gore, mozes nekim "curl"-om da pokupis podatke, i onda samo odseces nepotreban tekst i upisujes u bazi (to sve moze na linuxu u bashuu jednoj liniji da se uradi)
[ Nemanja Avramović @ 30.12.2008. 22:42 ] @
Evo sad sam probao kod sebe na serveru. Kod treba da glasi ovako:

Code:
system('uptime', $uptime);
echo $uptime;


Ovo kod mene na serveru vraća sledeći string:

Citat:
16:41:32 up 68 days, 10:21, 0 users, load average: 0.29, 0.39, 0.43 0


p.s. Ovo radi samo na *nix serverima. Za Windows bi verovatno mogao da se napiše sličan konzolni program koji bi onda PHP pozivao...
[ zaraza @ 30.12.2008. 23:02 ] @
Samo da vidim da li smo se razumeli.
Dakle, hocu recimo na svakih sat vremena da proverim da li radi http, znaci reci cu
$f = fsockopen("www.asd.com", 80, $errno, $ettstr, 30);
i ako je true, znaci da je server ziv, a ako nije, znaci da nesto nije u redu...Kada se to uporedi sa brojem "pingova", dobicu procenat koji ce odslikavati vreme za koje je server online.

E sad, zanima me, da li je dobra praksa uraditi uptime, pa proveravati da li je rezultat manji od od zadatog intervala?

[ mulaz @ 31.12.2008. 02:10 ] @
zar ne bi bilo lakse da stvarno pingujes server (komandom ping)?

Code:
ping www.google.com -c 3 ; echo $?

prvi deo vraca 0 ako je sve u redu, i neki drugi broj ako dodje do greske (naravno to se upisuje u terminal na *nix-u)