Thread perl Ausgabe in Datei funktioniert nicht als cron Job (4 answers)
Opened by NoaH at 2017-02-26 08:30

Linuxer
 2017-02-26 13:40
#186173 #186173
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Eigentlich sind dem Cron STDOUT und STDERR des aufgerufenen Programms erstmal egal. Nur wenn aus dem Programm auf diesen Kanälen etwas ausgegeben wird und damit im Cron landet, wird versucht, diese Ausgabe dann per Mail an den angegebenen Empfänger zu schicken.

Leider sind die genauen Anforderungen unklar. Ich befürchte, dass wir hier über Lösungs-Varianten nachdenken, die mit einem anderen Design so gar nicht notwendig wären.


Mein Ansatz ginge eher in die Richtung, STDOUT und STDERR so nicht anzufassen, sondern den Default-Handle der Ausgabe mit Perldoc:perlfunc select festzulegen.
So kann die gewünschte Ausgabe automatisch ins Logfile geschrieben werden und bei Bedarf immer noch nach STDOUT oder STDERR geschrieben werden. Wenn Meldungen des Skriptes auf STDERR (Perldoc:perlfunc die / Perldoc:perlfunc warn ) ebenfalls in der eigenen Logdatei landen sollen, dann würde ich das momentan über eigene Routinen dafür lösen.
Evtl. gibt es dafür auch schon eine Lösung in den CPAN:Log::* Modulen.


Wenn es Probleme gibt, dass nicht in die Logdatei geschrieben wird (werden kann), kann man das dann kaum noch feststellen, weil STDERR ja ebenfalls umgebogen wurde. Somit können auch die Fehlermeldungen bei einem warn() oder die(), die evtl. zeigen könnten, wo das Problem liegt, auch nicht geschrieben werden...


Man könnte den Cronjob dann so definieren, dass Ausgaben auf STDOUT und STDERR dann auch in eine Logdatei geschrieben werden sollen.

Code: (dl )
1
2
3
# execute every 5 minutes; 
# don't send mails, write to a logfile instead; check permissions and ownership of logfile
*/5 * * * * /path/to/script.pl >/var/log/script.log 2>&1
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread perl Ausgabe in Datei funktioniert nicht als cron Job