or warn in perl

Post Reply
Message
Author
ottto
Posts: 176
Joined: 09. Sep 2004 15:00

or warn in perl

#1 Post by ottto »

hallo,
ich möchte mit einem perlscript Dateien in verschiedenen Verzeichnissen löschen.
Funktioniert mit :
$verz = pfad + /*
unlink glob $verz or warn " + + + FEHLER + + + Verzeichnisinhalt $verz geht nicht zu loeschen $!\n";

Da ich das Script zeitgesteuert (nachts) laufen lassen möchte, brauche ich die Fehlermeldung in einer logdatei.
Wie geht das zu machen???
ottto

kfutter

#2 Post by kfutter »

> brauche ich die Fehlermeldung in einer logdatei. Wie geht das zu machen???

indem du die ausgabe statt als warning auszugeben in eine datei schreibst (open ( my $fh, ">datei" ) or die "..."; print $fh "FEHLER etc"; )
oder beim aufruf des scripts stderr in eine datei umleitest.

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#3 Post by jochen »

Die Ausgaben von cronjobs werden an den Eigentümer gemailt; Du hättest also jeden Morgen Post von cron mit dem Output Deines Skripts im Eingang. Ich persönlich habe solche Meldungen lieber in der Datei /var/log/messages. Das kann man über das Kommando "logger" erreichen:

Code: Select all

meinskript.pl 2>&1 | logger -p local2.info -t meinskript
Das "2>&1" lenkt die Fehlerausgabe mit in die Pipe um. logger schickt diese Meldungen mit der Kategorie local2.info an den syslog-Daemon und taggt alle Nachrichten mit dem Stichwort "meinskript". So kann man beispielsweise mittels "grep meinskript /var/log/messages | tail" die letzten Meldungen dieses Skriptes aus der /var/log/messages extrahieren.

perl bietet *unter Garantie* auch Module, um direkt an den syslogd zu loggern. Dafür müsstest Du aber selbst mal auf CPAN recherchieren.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

ottto
Posts: 176
Joined: 09. Sep 2004 15:00

#4 Post by ottto »

Hallo kfutter, hallo jochen,

vielen Dank für die Lösungswege!!!
Ich hab die Umleitung der stderr genutzt. funktioniert schon produktiv.


Danke
ottto

Post Reply