Schrift
[thread]11290[/thread]

perl cronjob -> mplayer -> Fehler: Stat: 32512



<< >> 6 Einträge, 1 Seite
Gast Gast
 2008-02-13 08:49
#105826 #105826
Hallo liebe Perl-Community!

Ich bin am verzweifeln :(

Ich führe über einen cronjob eine .pl aus, die Videos in .flv Dateien encodiert.

Problem:
Führe ich den Cronjob manuell über die shell des betreffenden Users aus, dann funktioniert alles einwandfrei!
Warte ich jedoch bis der Cronjob des betreffenden Users die Aufgabe anstösst und automatisch ausführt, kommt:

Code (perl): (dl )
1
2
3
4
5
6
mplayer -noconsolecontrols -vo null -nosound -identify ../sys/media/pool/user/usr4583/20080208233727_0001.wmv -frames 0 1> ../sys/tmp/video/47af76edb93851.dat 2> ../sys/tmp/video/47af76edb917b7.dbg failed! Stat: 32512
Extract...|-
mencoder -oac copy -ovc copy -o ../sys/tmp/video/47af76edb9d681.tmp -noskip -skiplimit 0 -mc 0 ../sys/media/pool/user/usr4583/20080208233727_0001.wmv 1> ../sys/tmp/video/47af76edb95594.dat 2> ../sys/tmp/video/47af76edb98ad6.dbg failed! Stat: 32512
Start...|-
(../sys/media/pool/user/usr4583/20080208233727_0001.wmv, ../sys/media/pool/user/usr4583/20080208233727_0001_tmp.flv, 25, 3)...
mencoder ../sys/media/pool/user/usr4583/20080208233727_0001.wmv -o ../sys/media/pool/user/usr4583/20080208233727_0001_tmp.flv -of lavf -ofps 25 -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050 1> ../sys/tmp/video/47af76edb9d64f.dat 2> ../sys/tmp/video/47af76edb9967d.dbg failed! Stat: 32512


Zuerst dachte ich es liegt an den Berechtigungen, aber dann würde es manuell über die shell ja auch nicht klappen oder?

Die Recherche nach "Stat: 32512" hat mir nichts gebracht :(

Die Crontab ist chmod 4755 - wenn das von Relevanz sein sollte.

Hat irgend jemand eine Idee?
Bin für jede Lösung und Tipps dankbar, aber denkt drann, bin kein Profi also drückt es so aus das auch ein minderbemittelter wie ich es verstehe ;)

Hoffe das ihr Perl-Pro`s mir helfen könnt!
Vielen lieben Dank!

Monika
betterworld
 2008-02-13 13:38
#105834 #105834
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Mit der Ausgabe, die Du da gepastet hast, kann man irgendwie relativ wenig anfangen, wenn man das Programm nicht kennt, das sie erzeugt. Du solltest mal den Quelltext von dem Cronjob zeigen. Falls er lang ist, bitte vorher so kuerzen, dass er das Problem noch erzeugt und sonst nichts macht.

Vielleicht sind die relativen Pfade ("../sys/tmp/video/47af76edb93851.dat") Dein Problem, falls Du Dich darauf verlaesst, dass der Cronjob aus einem bestimmten Verzeichnis gestartet wird. Nimm lieber absolute Pfade.
Gast Gast
 2008-02-13 16:10
#105842 #105842
Hallo bettwerworld,

erstmal vielen Dank für deinen Hilfeversuch :)

Ich bin mittlerweile schon ein ganz klein wenig weiter.
Die Berechtigungen und Pfade sind definitiv alle korrekt, haben wir geprüft.
Sonst würde er es manuell ja auch nicht finden und durchführen können.

Jetzt habe ich mal aus Spaß die 3 Dateien die er erstellt (diehe Fehlermeldung oben) gecheckt und siehe da:

1. = 47af76edb917b7.dbg
Code: (dl )
sh: mplayer: command not found


2. = 47af76edb98ad6.dbg
Code: (dl )
sh: mencoder: command not found


3. = 47af76edb9967d.dbg
Code: (dl )
sh: mencoder: command not found



Ich weiss jetzt zwar nicht, ob es noch direkt mit perl was zu tun hat, aber ich denke bzw. vermute mal ganz wage das irgendwas mit dem cronjob des users nicht stimmt?!

Denn wie gesagt ... gehe ich als "user1" in die shell vom "user1" und führe den cronjob befehl manuell aus - funktioniert alles einwandfrei!

Wenn ich aber drauf warte das der cronjob läuft und den Befehl automatisch ausführt, dann kommt wie gesagt das oben zustande :(

Jetzt frag ich mich als Leien wieso er manuell die mplayer (endoder/decoder) Befehle anscheinend kennt und als cronjob nicht...

Hat jemand Tipps/Lösungen?
Oder liege ich total deneben?
Andere Vermutungen?

Vielen lieben Dank für eure Hilfe!

Moni
GwenDragon
 2008-02-13 16:10
#105843 #105843
User since
2005-01-17
14554 Artikel
Admin1
[Homepage]
user image
Vielleicht auch absolute Pfade für die aufgerufenen Programme, falls die Pfade anders sind.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

nepos
 2008-02-13 16:56
#105848 #105848
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das Environment im Cronjob muss nicht dem echten Environment des entsprechenden Users entsprechen. Von daher würde ich dir raten, alle Pfade absolut anzugeben und auch die aufgerufenen Programme mit absolutem Pfad hinzuschreiben. Also statt nur 'mencoder' mal '/usr/bin/mencoder' schreiben.

Diese relativen Pfade zu den einzelnen Dateien sind auch böse. Da sollten absolute Pfade hin, sonst hast du da immer Ärger.

Alternativ kann man in einer User-Crontab auch angeben, welche Pfade gesetzt sein sollen. Schau dir mal
Code: (dl )
man 5 crontab
an!
Gast Gast
 2008-02-15 08:24
#105909 #105909
Hallo!

vielen lieben Dank für eure Tipps und die Hilfe!
Das Problem ist beseitigt.
Es lag daran, dass mplayer nicht korrekt installiert war, daher hat die shell (system) ihn zwar gefunden aber der crontab nicht :)

Nochmals danke und weiter so!!!
<< >> 6 Einträge, 1 Seite



View all threads created 2008-02-13 08:49.