Avatar billede Slettet bruger
18. juni 2003 - 20:55 Der er 9 kommentarer og
1 løsning

server online

Hejsa
Jeg søger et perl script som jeg kan køre via cronjob.
Det skal kunne checke om der blir svaret på port 80 på en ip og om der blir svaret på port 21, hvis der f.eks ikke svares på port 80 skal den skrive en mail til en email og skrive port 80 svarer ikke, og det samme hvis det er port 21.
Men hvis både port 21 og 80 ik svarer skal den ik sende 2 mails men skrive port 21, 80 svarer ikke
NOget i kan hjælpe med?
Avatar billede mfalck Praktikant
19. juni 2003 - 09:36 #1
Avatar billede Slettet bruger
22. juni 2003 - 14:15 #2
kan ik bruges, søger et bestemt script
Avatar billede Slettet bruger
22. juni 2003 - 15:45 #3
point hævet til 60
Avatar billede acoon Nybegynder
26. juni 2003 - 16:23 #4
## Disse tre skal nok rettes til ##
$host = "localhost";
$email = 'root@localhost';
$sendmail = '/usr/bin/sendmail'

$http = 0;
$smtp = 0;

use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10, Errmode => "return");
if ($t->open(Host => "$host", Port => 80)) {
        $t->print("GET / HTTP/1.0\n\n");
        $lines = $t->getlines();
        $http = 1 if ($lines =~ /HTTP\/1\.1\ 200\ OK||HTTP\/1\.0\ 200\ OK/);
        $t->close;
}

$t2 = new Net::Telnet (Timeout => 10, Errmode => "return");
if ($t2->open(Host => "$host", Port => 25)) {
        $smtp = 1 if ($t2->waitfor(-match => '/^220/'));
        $t2->close;
}

@errormsg = "Unable to connect to $host on port 25" if ($smtp eq 0);
@errormsg = "Unable to connect to $host on port 80" if ($http eq 0);
@errormsg = "Unable to connect to $host on port 80\nUnable to connect to $host on port 25" if ($http eq 0&&$smtp eq 0);
if (($http eq 0)|($smtp eq 0)) {
        system("echo -e \"Subject: Error in connecting\\n\\n @errormsg \\n\" | $sendmail $email");
}
Avatar billede acoon Nybegynder
26. juni 2003 - 16:24 #5
arj!! Har først nu set der stod port 21.. Læste det som 25..
Avatar billede acoon Nybegynder
26. juni 2003 - 16:35 #6
Så er det fixet..


## Disse tre skal nok rettes til ##
$host = "localhost";
$email = 'root@localhost';
$sendmail = '/usr/bin/sendmail'

$http = 0;
$ftp = 0;

use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10, Errmode => "return");
if ($t->open(Host => "$host", Port => 80)) {
        $t->print("GET / HTTP/1.0\n\n");
        $lines = $t->getlines();
        $http = 1 if ($lines =~ /HTTP\/1\.1\ 200\ OK||HTTP\/1\.0\ 200\ OK/);
        $t->close;
}

$t2 = new Net::Telnet (Timeout => 10, Errmode => "return");
if ($t2->open(Host => "$host", Port => 21)) {
        $smtp = 1 if ($t2->waitfor(-match => '/^220/'));
        $t2->close;
}

@errormsg = "Unable to connect to $host on port 21" if ($ftp eq 0);
@errormsg = "Unable to connect to $host on port 80" if ($http eq 0);
@errormsg = "Unable to connect to $host on port 80\nUnable to connect to $host on port 21" if ($http eq 0&&$ftp eq 0);

if (($http eq 0)|($ftp eq 0)) {
        system("echo -e \"Subject: Error in connecting\\n\\n @errormsg \\n\" | $sendmail $email");
}
Avatar billede angam Nybegynder
26. juni 2003 - 16:37 #7
Som skabslæser: Må jeg spørge hvordan du kalder php-scriptet fra et cron-job?
Avatar billede acoon Nybegynder
26. juni 2003 - 16:45 #8
nææh.. For nu er det jo et prtl script.. :)

php er i en anden gruppe..
Avatar billede angam Nybegynder
26. juni 2003 - 16:46 #9
Ååh undskyld - tog det fra forsiden, og scriptet lignede jo til forveksling php ...
I rest my case *gg*
Avatar billede pgm Nybegynder
08. marts 2004 - 14:49 #10
angam:

Hvis det sku være en anden dag, så kalder du bare php scriptet via
php /stien/til/dit/script.php

Så skulle det aktiveres... sådan fungere det ihvertfald på min redhat9
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
Kurser inden for grundlæggende programmering

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