18. juni 2003 - 20:55Der 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?
## 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"); }
## 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"); }
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
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.