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_resultwget 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.htmlrm check_blacklist_result.txt rm check_blacklist_result
script 2
#!/usr/bin/perl -w #use strict; use MIME::Lite;#Datum ermittelnmy ($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;