Avatar billede computopic Nybegynder
28. marts 2001 - 16:27 Der er 37 kommentarer og
1 løsning

overvågning

Er der en der kan lave et lille simpelt PHP script der kan tjekker om webbet køre.. og hvis det ik gør mailer scriptet til den pågældende.
Havde forestiler mig at txtfilen oplysnigerne skal hentes i kunne se sådan her du: list.txt
123.123.123.123 dk@computopic.dk
232.323.232.232 jubii@bla.dk
og så videre...
Det kunne være en glimrendene service for mange .. og vi (computopic)  vil gerne lægge server til.. gratis..
Avatar billede repsac Nybegynder
28. marts 2001 - 16:39 #1
Man kan vel ikke pinge fra php (? - jeg er forholdsvis newbie)
MEN du kan vel bruge følgende:

$var = \"stien til websitet\";
if (file_exists($var)) {
      echo \"siden er OPPE\";
} else {
      echo \"siden er NEDE\";
      mail(...);
}

Hvis der ikke må bruges MySQL til at hente sites\'ne kan man vel fuske sig til noget med (Jeg aner bare ikke hvordan man bestemmer hvilken linie der skal \"læses\" i txt-filen ...);

$filename = \"fil.txt\";
$fd = fopen ($filename, \"r\");
$indhold = fread ($fd, filesize ($filename));
fclose ($fd);
Avatar billede vladimirr Nybegynder
28. marts 2001 - 16:39 #2
med på en lytter..
Avatar billede repsac Nybegynder
28. marts 2001 - 16:41 #3
=>vladimirr: _Næsten_ samtidigt ... ;o)
Avatar billede repsac Nybegynder
28. marts 2001 - 16:43 #4
... www.php.net er nede ... de kunne også få brug for din service computopic ... ;o)
Avatar billede artikler Nybegynder
28. marts 2001 - 16:49 #5
repsac --> efter hvad jeg ved kan du kun bruge file_exist på egen server, man skal bruge fopen(\"$var\", \"r\"); i stedet
Avatar billede vladimirr Nybegynder
28. marts 2001 - 16:53 #6
hvad fanden er php.net stadig nede, det var de også klokken 12 !
Avatar billede vladimirr Nybegynder
28. marts 2001 - 16:53 #7
repsac -> jeg sigtede ellers efter dit hoved, men ramte 2 sek, forkert....
Avatar billede repsac Nybegynder
28. marts 2001 - 16:56 #8
=>artikler: Det kan da godt ske ... skal ikke kunne sige det, men vi kan jo ikke en gang se efter på php.net ...
Mht. fopen, så er det C&P fra php.net for noget tid siden ... Det virker i hvert fald uden \"
Avatar billede repsac Nybegynder
28. marts 2001 - 16:58 #9
=>vladimirr: Tjaehh det er de. Sker det ofte? - for jeg har aldrig oplevet det før.
Avatar billede uller Nybegynder
28. marts 2001 - 16:59 #10
ville man ikke kunne bruge passthru (\"ping 121.121.12.2\");
Avatar billede repsac Nybegynder
28. marts 2001 - 17:00 #11
=>artikler: Du har vist ret mht. file_exists ... jeg kan i hvert fald ikke få det til at virke.
Men hvilken funktion kan så bruges?
Avatar billede artikler Nybegynder
28. marts 2001 - 17:00 #12
jeg kan godt komme ind på www.php.net
Avatar billede artikler Nybegynder
28. marts 2001 - 17:02 #13
repsac --> Jeg ved fopen kan bruges, men der findes sikker andre der er bederer og hurtigere
Avatar billede repsac Nybegynder
28. marts 2001 - 17:02 #14
=>artikler: Det kan jeg også NU ...
=>uller: \"passtru\" - aner det ikke ... kender ikke funktionen.
Avatar billede vladimirr Nybegynder
28. marts 2001 - 17:03 #15
repsac -> De har været nede før, men aldrig i flere timer som det vist er tilfældet lige nu!
men man kan finde manualen andre steder vil jeg tro, jeg fandt selv noget jeg kunne bruge i www.zend.com \'s manual (Jeg ville hente manualen fra php.net i formiddags, typisk at de er nede når man skal bruge dem!)

//Anders

BTW. De er oppe igen nu!
Avatar billede repsac Nybegynder
28. marts 2001 - 17:03 #16
Ups. Jeg mangler lige et \"h\" ...

=>artikler: jeg ville bruge fopen til at åbne filen med oplysningerne om hvilke sites der skal checkes for ...
Avatar billede skwat Praktikant
28. marts 2001 - 17:06 #17
kan man godt få PHP til at lave en rutine ,med et bestemt inteval??? jeg ville ikke tro det.

Umidelbart vil jeg tro at du skal lave et program i C eller ligen.
Avatar billede uller Nybegynder
28. marts 2001 - 17:06 #18
\"passthru()\" bruges til system kald ex \"ping\".
Det virker i hvert fald hvis man bruger linux som OS..
Avatar billede computopic Nybegynder
28. marts 2001 - 17:07 #19
at pinge serveren er også en dårlig ide.. da man mange gange godt kan pinge,... men webserveren er nede aligevel..
Så det er bedst hvis den bare kiggere efter om der findes en index.*  ...
Kan de også laves så at scriptet .. via en formmailer.cgi kan sende en mail til personen?
HVis det er for svært med txtfil .. så har vi da MySql...
Avatar billede skwat Praktikant
28. marts 2001 - 17:13 #20
pinge er også en dårlig ting fordi de mest elementere FireWalls svare ikke på ping
Avatar billede uller Nybegynder
28. marts 2001 - 17:13 #21
hvis så, er jeg enig med \'artikel\' om at fopen er en løsning.

og jo du kan \"sagtens\" lave et script der sender en mail til evt. webmaster hvis ikke serveren svare...

- det er altid nemmest at hånterer data fra en database, men kan da laves med info fra en text fil.
Avatar billede skwat Praktikant
28. marts 2001 - 17:21 #22
Er der nogen der ved om man kan få PHP til at køre med et hvist interval`????
Avatar billede computopic Nybegynder
28. marts 2001 - 17:23 #23
Kan en lave det færdige script ud fra denne oplysning:
server: computopic.dk
Database: alert
Tabel: webs
Rækker: ID , adresser , e-mail , interval
pass: alert
User: alert


.. hvis flere informationer mangler .. så sig til ..  Jeg synes nemlig at denne her omtalte service mangler..  og det skal selvfølig være gratis.. så kan man nemlig følge lidt med i om nes webs er oppe..
Avatar billede repsac Nybegynder
28. marts 2001 - 17:25 #24
=>skwat: man kan vel bare lave en refresh på siden ... så køres scriptet igen og igen og ... men jeg kender ingen php-funktioner der kan det - tror heller ikke der findes én der kan.
Avatar billede uller Nybegynder
28. marts 2001 - 17:29 #25
man kan lave et cron job der håntere dette..
hvis php er instelleret som cgi-modul kan det laves i stil med et bash script bare med \"# /{sti}/php\" i toppen istedet for \"# /bin/bash\"

Hvis ikke kan man bruge lunx(en linux browser) til at eksikvere scriptet med.
man kalder så lynx med urlen til scriptet fra sit cron job...
Avatar billede computopic Nybegynder
28. marts 2001 - 17:44 #26
Hvis man ikke kan lave interval .. så fastsætter vi den bare til hver 30 min .. med en refresh i <head> ..
Avatar billede skwat Praktikant
28. marts 2001 - 17:46 #27
Jeg håber at computopic har en meget alvorlig server der kan håntere det. samt en meget voldsom forbindelse :) jeg vil mene at hvis man køre tjekket fire gange i timen må det være nok.
Du resikere også at folk tror at du prøver at slå deres server ihjeld.

Desuden findes servicen webalert mange steder
Avatar billede repsac Nybegynder
28. marts 2001 - 17:58 #28
=>skwat: Min den gamle laver over 4.000 målinger på nettet mellem forskellige severe hvert. 5 min. på hans arbejde (med linux) ... Antallet af servere er selvfølgelig begrænset, men der er altså en hel del (et stort firma).
Avatar billede skwat Praktikant
28. marts 2001 - 18:01 #29
Jeg ved bare godt hvordan jeg vil reagere hvis jeg var ISP og en af brugerne begyndte at sende ip pakke rundt til forskellige ip\'er. men fred være med det jeg er ikke ISP :-)
Avatar billede computopic Nybegynder
28. marts 2001 - 18:03 #30
Derfor skal der heller ik pinges.. men bare ses efter om index.* eksistere..
Lynx kunne så og køre på serveren .. og refreshe hver halve time..
Avatar billede sis Nybegynder
28. marts 2001 - 23:14 #31
Lav et etscript der ser nogenlunde sådan ud (inge garanti - det er ikke testet :o) )

<?php
$databasefil = \"db.txt\";
/* Lav db.txt så den har en linje til hver side der skal chekkes: [URL]|[email]
f.eks:
http://www.schoebel.dk|simon@scheobel.dk
http://www.eksperten.dk|webmaster@eksperten.dk
osv
*/
$fp = fopen ($databasefil, \"r\");
$con = fread ($fp, filesize($databasefil));
fclose( $fp ); //con indeholder nu hele txt filen i een lang streng

$posts=split(\"\\n\",$con); // Nu har vi et array, lad os chekke siderne

for ($i=0;$i<sizeof($posts);$i++) {
  list ($url,$email) = split(\"\\|\",$posts[$i]);
  $fp=fopen($url,\"r\");
  if (!$fp) {
    $tid=date(\"H:i\");
    mail($email,\"Din side er nede\",\"Klokken $tid idag, da vi testede din side, kunne vi ikke connecte til den!\");
  } else {
    fclose($fp);
  }

}
?>

log ind på telnet eller gå hen til serveren, og
lav en crontab til at køre scriptet med:

crontab -e ( for at starte rontab editoren op )
skriv så:
30 * * * * /usr/bin/lynx -dump http://www.dit-domæne.dk/test-script.php

intet af det er teste :o)
men burde stort set virke, crontabben kan godt drille ( ret meget :o) men var det ikke noget lign det her du ville ha?

med venlig hilsen
Simon

Avatar billede computopic Nybegynder
03. april 2001 - 18:45 #32
Nu virker scriptet!
Men hvis en af adresserne ikke svare kommer der bare denne fejl:
Warning: fopen(\"http://www.smsmes.dk\",\"r\") - Bad file descriptor in /www/computopic.dk/alert/index.php3 on line 11

Men ellers virker det perfekt med ovenstående .. og scriptet sender da også mail ud til dem der har fejl..
Men hvordan kan dette rattes?
- computopic
Avatar billede uller Nybegynder
03. april 2001 - 18:58 #33
sæt et @ foran fopen (\"@fopen()\") så undertrykker du den warning..

sender du et link / koden når den er færdig???
Avatar billede computopic Nybegynder
03. april 2001 - 19:29 #34
Kunne man lave en lille udvidelse.. så at scriptet skrive på siden en liste over de adresser den overvåger.. og ud for hver skrive om de er oppe eller nede?

Scriptet ser sådanud nu.. og virker.
I får adressen når det køre..

Og hvis nogen vil overvåges kan i bare skrive til dk@computopic.dk så adder jeg bare til listen.. den opdatere hver time som det kan ses i scriptet..

<head>
<meta http-equiv=\"refresh\" content=\"3600; url=index.php3\">
</head>
Køre..  tester
<?php
$databasefil = \"db.txt\";
$fp = @fopen ($databasefil, \"r\");
$con = fread ($fp, filesize($databasefil));
fclose( $fp ); //con indeholder nu hele txt filen i een lang streng

$posts=split(\"\\n\",$con); // Nu har vi et array, lad os chekke siderne

for ($i=0;$i<sizeof($posts);$i++) {
  list ($url,$email) = split(\"\\|\",$posts[$i]);
  $fp=fopen($url,\"r\");
  if (!$fp) {
    $tid=date(\"H:i\");
    mail($email,\"Din side er nede\",\"Klokken $tid idag, da vi testede din side, kunne vi ikke connecte til den! mvh Computopic.dk\");
  } else {
    fclose($fp);
  }

}
?>
Avatar billede computopic Nybegynder
03. april 2001 - 19:30 #35
og lige en sidebemærkning.. det ville nog være en fordel hvis scriptet skrive i mailen hvilken adresse det er der ikke køre.. da mange har flere.. ;-)

- Computopic
Avatar billede uller Nybegynder
04. april 2001 - 10:26 #36
kan du ikke bare skrive \"$url\" variablen ind i body\'en på mailen...?
Avatar billede uller Nybegynder
04. april 2001 - 10:33 #37
btw.
hvis man læser dokumentationen for split() står der:
- quote ------------------------------------------
Note that if you don\'t require the power of regular expressions, it is faster to use explode(), which doesn\'t incur the overhead of the regular expression engine.
- quote ------------------------------------------
Avatar billede computopic Nybegynder
09. april 2001 - 16:36 #38
Hey Simon.. Scriptet virker.. og resultatet kan ses og benyttet på www.scriptzone.dk snart.. hvis det ikke allerede er oppe..
Scriptzone.dk er et sted lidt lige som eksperten.dk måske lidt mindre.. og anderledes..

Mvh
Computopic
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester