Dies ist eine Sammlung von nützlichen Perl-Tools.
Das Perl-Modul prüft, ob eine Datei auf einem Server vorhanden ist. Falls dies nicht der Fall ist, wird eine E-Mail verschickt.
Ich nutze das Tool, um zu prüfen, ob neue Versionen einer Software auf einem Server bereit gestellt wurden.
Das Modul benötigt libmail-sendeasy-perl.
sudo aptitude install libmail-sendeasy-perl
Das Modul an einen geeigneten Ort (@INC) kopieren und ausführbar machen.
cp FileCheck.pm /usr/local/lib/site_perl/Web/FileCheck.pm
chmod 0755 /usr/local/lib/site_perl/Web/FileCheck.pm
Das Modul kann einfach über ein Script, zum Beispiel /usr/local/sbin/check_file_on_server.pl
, eingebunden werden, das über ein cron-Fragment, wie beispielsweise /etc/cron.daily/check_file
, gestartet wird:
/usr/local/sbin/check_file_on_server.pl:
#!/usr/bin/perl
use strict;
use warnings;
use Web::FileCheck;
my $file_check = Web::FileCheck->new();
$file_check->url();
/etc/cron.daily/check_file:
#!/bin/sh
test -x /usr/local/sbin/check_file_on_server.pl || exit 0
/usr/local/sbin/check_file_on_server.pl https://server.com/2017/file_to_test.tar.xz
Das Script wird auf einem Mail-Server eingebunden und leitet Mails eines bestimmten Absenders als Kopie automatisch weiter, wobei die Original-E-Mail als Anhang mitgeschickt und das Subject modifiziert übernommen wird.
Der Input ist die Original-E-Mail über Pipe. Der Aufruf des Scripts mittels .procmailrc
erfolgt wie folgt:
:0
{
:0 c
* ^From.*from@sender.mail
| /usr/lib/cgi-bin/forward_modified_email.pl
}
Das Perl-Modul prüft in einem definierten Zeitabstand, ob sich der Inhalt einer Webseite geändert hat. Die Prüfung erfolgt anhand eines Hash-Wertes. Falls sich der Inhalt der Webseite geändert hat, wird eine E-Mail verschickt.
Ich nutze das Tool, um zu prüfen, ob eine Webseite mit dem Hinweis "Coming soon ..." aktualisiert wurde.
Das Modul benötigt libmail-sendeasy-perl.
sudo aptitude install libmail-sendeasy-perl
Das Modul an einen geeigneten Ort (@INC) kopieren und ausführbar machen.
cp FileCheck.pm /usr/local/lib/site_perl/Web/SiteUpdate.pm
chmod 0755 /usr/local/lib/site_perl/Web/SiteUpdate.pm
Das Modul kann einfach über ein Script, zum Beispiel /usr/local/sbin/site_update.pl
, eingebunden werden, das über ein cron-Fragment, wie beispielsweise /etc/cron.d/site-update
, gestartet wird:
/usr/local/sbin/site_update.pl:
#!/usr/bin/perl
use strict;
use warnings;
use Web::SiteUpdate;
my $site_update = Web::SiteUpdate->new();
$site_update->check();
/etc/cron.d/site-update:
*/10 * * * * root [ -x /usr/local/sbin/site_update.pl ] && /usr/local/sbin/site_update.pl <URL> <hash>
Der zu testende Hash-Wert kann originär ermittelt werden mit:
wget -qO- <URL> | sha256sum | awk '{print $1}'
Copyright (C) 2017-2024 Ralph Plawetzki