Aus gegebenem Anlass habe ich ein script zur Überwachung von Domains – genauer gesagt deren IP Adressen geschrieben das prüft ob die hinterlegten Domains geblacklisted sind und das Ergebnis an eine eMail Adresse schickt. Das ganze besteht aus zwei scripten. Das erste sammelt allen notwendigen Informationen und erstellt daraus eine verwertbare Datei. Das zweite skript verschickt eben diese Datei per eMail.

    Unter Umständen ist es notwendig, dass Sie ein Paket für Perl nachinstallieren

    ~# cpan -i MIME::Lite

    script 1

    #!/bin/bash
    # Bereinigung um Probleme durch skript abbrüche zu umgehen
    rm 127.0.0.2.html
    rm check_blacklist_result.txt
    rm check_blacklist_result
    wget http://www.robtex.com/rbls/127.0.0.2.html
    echo "<html>" >> check_blacklist_result.txt
    cat 127.0.0.2.html | grep -A33 "style type" >> check_blacklist_result.txt
    cat 127.0.0.2.html | grep -A6 "table border=1>" >> check_blacklist_result.txt
    # dummy (127.0.0.2)
    echo "====================== dummy (127.0.0.2) ====================== <br>" >> check_blacklist_result.txt
    cat 127.0.0.2.html | grep -B4 -A2 BLACKLISTED >> check_blacklist_result.txt
    echo "<br>" >> check_blacklist_result.txt
    echo "<br>" >> check_blacklist_result.txt
    # Zeilenumbrüche entfernen & Datei verschicken
    cat check_blacklist_result.txt | sed 's/$/ /' | tr -d 'n' > check_blacklist_result
    ./check_blacklist_send.sh
    # Bereinigung
    rm 127.0.0.2.html
    rm check_blacklist_result.txt
    rm check_blacklist_result

    script 2

    #!/usr/bin/perl -w
    #use strict;
    use MIME::Lite;
    #Datum ermitteln
    my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
    $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
    my $CTIME_String = localtime(time);
    $Monat+=1;
    $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
    $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
    $Jahr+=1900;
    # open html file
    open (IN,"/root/scripts/check_blacklist_result");
    @datei = <IN>;
    # SendTo email id
    my $email = 'user@domain.tld';
    # create a new MIME Lite based email
    my $msg = MIME::Lite->new
    (
    Subject => "[Blacklist check - $Monatstag.$Monat.$Jahr]",
    From => 'root@domain.tld',
    To => $email,
    Type => 'text/html',
    Data => @datei
    );
    $msg->send();
    close IN;

    Leave A Reply