28. maj 2004 - 15:32Der er
40 kommentarer og 1 løsning
Skal bruge et link checker script (om server, oppe el. nede)
Jeg skal bruge et script som kan checke om en server er oppe eller nede, det skal kunne checker mange (over 50)
- Det skal ikke vise serveren hvis den er nede - Kun jeg skal kunne tilføje serverne - jeg skal kunne vælge hvilken port - Scriptet skal sige hvor lang tid serverne har været online
Jeg er desværre ikke selv god nok til at lave det, men jeg tænkte det kunne laves sådan:
server.txt (txt men de servers som skal checkes, kunne også laves i mysql) server.php (checker om den er online, lidt som http://www.dvdrip.dk/test/server.php men det skal kun være mig der kan tilføje server, og der skal være kunne være flere end en server, og at den skal vise hvor langtid de har været online i)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Formatet på server.txt (eller 503695_servers.txt jeg har kaldt den) er: hostnavn#portnummer#antalokchecks#status
fx
eksperten.dk#80#8#UP
Hvis du tjekker hver time, så tager du 8*60 for at få antal minutter den tror serveren har været op. UP eller DOWN er aktuel status. Hvis serveren er nede, så bliver antalokchecks sat til 0.
pt. venter scriptet max 1 sekund for at få forbindelse.. Det kan være du skal sætte dne lidt op..
jeg gætter på at du bruger et webhotel - normalt tillader de ikke at man bruger cron (som giver dig mulighed for at starte et script hver time).. Så der er et par alternativer.
1) At få en anden maskine til at kalde scriptet hver time. 2) Hvis du har rimeligt med hits døgnet rundt, så kan du lave det sådan at ved hver hit på fx. forsiden så bliver datoen for sidste rettelse på server.txt-filen testet. Er den ældre end een time, så udføres en opdatering.. ellers ikke.. 3) Noget jeg ikke har fantasi til ligenu :-)
Hvis det kun drejer sig om een gang i timen, kan jeg snildt gøre det for dig (kalde scriptet hver time). Men så er du afhængig af mig og min maskine (og at den er online).
Du er velkommen til at smide en mail på dennis@moellegaard.dk - så kan jeg hurtigt sætte det op for dig. Så kan du altid undersøge om der er alternative måder at gøre det på .. evt snakke med dit webhotel.
foreach($servers as $info) { list($host,$port,$uptime,$status) = explode("#",$info); if( $status == 'UP' ) { print "Flot design her: $host på port $port har status $status<br>"; print "Vi tror den har været oppe i $uptime timer<br>"; } } ?>
foreach($servers as $info) { list($host,$port,$uptime,$status) = explode("#",$info); print "$info - status er: $status<br>"; if( $status == 'UP' ) { print "Flot design her: $host på port $port har status $status<br>"; print "Vi tror den har været oppe i $uptime timer<br>"; } } ?>
Ah nu tror jeg, jeg ved hvad der er galt. $status indeholder nok også et linjeskift.
Prøv <?php $servers = file('503695_servers.txt');
foreach($servers as $info) { rtrim($info); list($host,$port,$uptime,$status) = explode("#",$info); if( $status == 'UP' ) { print "Flot design her: $host på port $port har status $status<br>"; print "Vi tror den har været oppe i $uptime timer<br>"; } } ?>
Skrev lige jubii.dk#80 på også så jeg var sikker på at mindst en virkede, men så kigge jeg lige på datafilen efter jeg har kørt server.php, den ser ikke helt normalt ud:
linux.aliboom.com#6969#0#DOWN(firekant)torrentmania.net#2711#0#DOWN(firekant)jubii.dk#80#5#UP(firekant) og så står det hele på en linie
(firekant) = er den firkant man ikke kan skrive her på exp
Hehe - beklager de uklare svar til tider - Men det virker da i det mindst nu :).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.