blog.bartlweb - a technologist's external brain

Erreichbarkeit von Servern mittels Perl-Skript überwachen

Das folgende Perl-Skript überwacht die Erreichbarkeit von Servern mittels ping oder SSH-Login. Im Fehlerfall wird ein Administrator über die nicht Erreichbarkeit per E-Mail informiert. Um die Überprüfung per SSH zu ermöglichen, muss der Login auf dem Entfernten Server mittels Public-Key, d.h ohne Passwort möglich sein.

#!/usr/bin/perl
 
#
# config
#
 
$subject = "Server: Server Reachability-Test fails";
$mailfrom = "server\@domain.com";
$mailto = "admin\@domain.com";
 
# servername => command
%server = (
    'internal Server' => 'ping -qc3 192.168.0.1 > /dev/null 2>&1',
    'external Server' => 'ssh -q -o "BatchMode=yes" server.domain.com -p 22 -l remoteuser "exit" > /dev/null 2>&1'
);
              
#
# script
#
              
use FileHandle;
      
while( ($servername, $command) = each(%server) ){                
        @return = system($command);
 
        if($? != 0) {
            push(@warn, "$servername => $command => fails");
            #print "$servername => $command => fails\n";
        } else {
            #print "$servername => $command => success\n";   
        }
}
                                    
if(@warn){
    $mail = new FileHandle;
    $mail->open("| /usr/sbin/sendmail -t") || die "Cannot open: $!";
    $mail->print("From: $mailfrom\n");
    $mail->print("To: $mailto\n");
    $mail->print("Subject: $subject\n\n");
                                             
    foreach (@warn) {
        $mail->print($_, "\n");
    }
                                                                 
    $mail->close();
}

Beachten Sie, dass bei Ausführung des Skripts mittels Cronjob eventuell der Pfad zum ping und ssh Befehl angegeben werden muss. Sie können den Pfad mittels which <command> ermitteln.

Dieser Artikel hat dir deinen Tag gerettet?
... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? ... oder einfach nur dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Spende honorierst:

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste - ich freue mich über deine Anmerkungen, Kritik und Fragen.

Kommentar schreiben

Deine E-Mailadresse wird nur für Benachrichtigungen und Rückfragen verwendet und wird nicht veröffentlicht.

Benachrichtigungen können jederzeit wieder abbestellt werden.

Bitte tippe die Zahlenkombination "4719" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.