Schrift
[thread]6835[/thread]

Fehler eines Cronjobs in eine Datei



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
ppm1
 2005-04-03 17:54
#53162 #53162
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Hallo

Ich habe zur Zeit einige Cronjobs laufen, aber die Fehler die dort entstehen könnten, also Perl Fehler usw. bekomme ich nicht ausgegeben sondern nur mein Administrator.

Wie kann ich die Fehler die dort entstehen z.B. in eine Datei schreiben lassen, sodass sie mir zur Verfügung stehen, ohne dass der Server irgendwie belastet wird bzw. große Änderungen am Server vorgenommen werden müssen (an meinen Skripten kann verändert werden, dass ist kein PRoblem)?


Danke.
esskar
 2005-04-03 18:07
#53163 #53163
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
von welcher art von fehlern sprichst du?
du kannst STDERR um leiten!
ppm1
 2005-04-03 19:04
#53164 #53164
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Ich spreche von fehlern der folgenden Art:

(bei use strict)

z.B.
$state nicht definiert
$state enthält undefined value

usw.

oder aber wenn ich z.B. syntax Fehler habe wie:

wenn ich z.B. ein Komma vergesse usw.
coax
 2005-04-03 19:16
#53165 #53165
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Wenn du in der crontab MAILTO auf deinen Benutzernamen setzt bekommst du und nicht der Admin die Fehler und Ausgaben deiner Kommandos zugesendet.
Code: (dl )
1
2
MAILTO=ppm1
@daily /usr/bin/perl /home/ppm1/bin/myscript


Alternativ leitest du in der crontab den Fehler- und Standardausgabekanal einfach in eine Datei um, beispielsweise so:
Code: (dl )
@daily /usr/bin/perl /home/ppm1/bin/myscript 2>&1 >/home/ppm1/log/myscript.log
,,Das perlt aber heute wieder...'' -- Dittsche
Dubu
 2005-04-04 22:13
#53166 #53166
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Abgesehen davon: Seine Skripte sollte man nach Moeglichkeit vorher schon mal von der Kommandozeile aus aufgerufen haben, dadurch lassen sich viele Fehler schon finden.

Um Syntaxfehlern auf die Spur zu kommen, kann man Perl das Skript auch einfach nur kompilieren lassen, ohne es auszufuehren:
perl -c skriptname
ppm1
 2005-04-06 00:47
#53167 #53167
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
@daily /usr/bin/perl /home/ppm1/bin/myscript 2>&1 >/home/ppm1/log/myscript.log


Das hab ich mal ausprobiert: Problem: Er erstellt die Datei bei jedem Aufruf neu, also wird das immer wieder gelöscht....

Kann man da nicht irgendetws machen, das er den Fehler nur anhängt?
pq
 2005-04-06 11:52
#53168 #53168
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
>>
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ppm1
 2005-04-07 00:19
#53169 #53169
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
@daily /usr/bin/perl /home/ppm1/bin/myscript 2>&1 >>/home/ppm1/log/myscript.log


Also 2 > jetzt mal.
Hab es mal getestet:

Da ist es ganz komisch: Er überschreibt die Datei auch, nur nicht mehr wenn es mit '' überschrieben werden würde.

also 1 Fehler bleibt drinne, aber er wird durch einen neuen Fehler überschrieben, aber nicht dann wenn kein Fehler entsteht.
pq
 2005-04-07 13:48
#53170 #53170
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
>>/home/ppm1/log/myscript.log 2>&1
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pKai
 2005-04-07 14:57
#53171 #53171
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Wenn das Skript ein eigenes Log führt, kann man auch STDERR innerhalb analog umleiten.
Code: (dl )
1
2
open(LOG, ">>$LogFile")
open (STDERR, '>&LOG')
Fehler/Warnungen vor der Umleitung und solche Fehler die dein Skript hart crashen (à la "Can't call method ... on an undefined value ..." <- findet perl -cw nicht) bekommst du da natürlich nicht zu sehen (außer du eval-st darum herum).
I sense a soul in search of answers.
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2005-04-03 17:54.