PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : multidecoderskript unter linux funktioniert nicht mit cronjob



SGE
21.04.2009, 23:02
Ich würde da in das Skript mal am Anfang ein cd $Verzeichnismitdenotrkeys einbauen.
Woher soll cron sonst wissen wo es 'for arg' ausführen soll? Das nimmt als Workdir sonst AFAIK das $HOME.

Und natürlich den ganzen Pfad zu Skript in der crontab angeben, auch sehr wichtig, nicht einfach otrmd!

Wolfgang_02
22.04.2009, 15:23
So lange das Skript ohne die Verzeichnisangabe war hatte ich es im gleichen Ordner abgelegt und ausgeführt in dem auch die otrkeys lagen. Versuchsweise hatte ich es auch so probiert

for arg in /PfadzumVerzeichnis/*.otrkey

so dass in $arg eigentlich immer ein otrkey-file war.

In der Crontab steht auch der vollständige Pfad zum Decodierskript. Trotzdem funktioniert es nicht.

An einen Fehler in der Crontab glaube ich nicht, da der Job mit KCron erstellt wurde und andere, auf die gleiche Weise erstellte Jobs komischerweise funktionieren.
Nur eben das dekodieren nicht.

PeGu
23.04.2009, 13:05
Glaub ich auch nicht das es ein Bug ist. Aber gerade cronscripts sind oft etwas zickig, da muß alles stimmen, da der Prozeß eine andere Umgebung hat als ein normal gestarteter. Deswegen auch die dummen Nachfragen ob die Pfade alle ausgeschrieben sind und so;)

Ich verfolge die Geschichte hier interessiert (ich bastele auch immer gerne an Automatisierungen...). Könnte es denn an der Rechtevergabe für das Decodierscript liegen? Was passiert denn, wenn du es für alle ausführbar machst?
(Und der Neugierde halber: würde das von dir zusammengeklebte Verschiebe-Decodierscript statt im Autostart auch als cronjob laufen? Quasi durch die Hintertür?)

SGE
23.04.2009, 17:15
Aber im Normalfall läuft der Cronjob unter der ID des aufrufenden Users und es ist absolut unnötig das für alle ausführbar zu machen.
Ich nehm ja mal an das es ein Einzelplatzsystem ist, aber prinzipiell sollte man Skripte in denen auch noch Zugangsdaten stehen nicht unbedingt der Allgemeinheit freigeben, aber das nur nebenbei :cool:

Aber ob das Skript für den User ausführbar und alle beteiligten Verzeichnisse die benötigten Rechte haben, bzw, überhaupt angelegt sind wollte ich auch al nächstes fragen. Und von welchem User der cronjob überhaupt angelegt wurde und das ~ im Skript infolgedessen richtig aufgelöst wird.;)


(Und der Neugierde halber: würde das von dir zusammengeklebte Verschiebe-Decodierscript statt im Autostart auch als cronjob laufen? Quasi durch die Hintertür?)

Wäre auch mein Vorschlag. Was passiert wenn der Skriptaufruf zu otrkey-decode.sh einfach in otrkey-verschieb.sh steht....

Wolfgang_02
23.04.2009, 17:36
Also versuchsweise habe ich die Rechte mal auf alle erweitert. Brachte aber leider auch nicht das gewünschte Ergebnis. Zwar handelt es sich um ein Einzelplatzsystem, da ich aber grundsätzlich die Bedenken von SGE teile, habe ich es wieder zurückgestellt ;)

Zu eurem Tip mit dem User, der das Skript angelegt hat und dem der es ausführt kann ich sagen, dass es sich dabei um denselben handelt; und das Skript selber ist auch ausführbar. Wie gesagt, wenn ich es manuell anstoße läuft es ohne Probleme durch.


(Und der Neugierde halber: würde das von dir zusammengeklebte Verschiebe-Decodierscript statt im Autostart auch als cronjob laufen? Quasi durch die Hintertür?)

Das habe ich jetzt ausprobiert (vielen dank für den Tip; warum bin ich da nicht selber draufgekommen?) und habe hierbei etwas interessantes festgestellt.
Das Verschieben der otrkeys mittels Skript otrkey-verschieb wird nach wie vor ohne Probleme ausgeführt. Nun aber wird plötzlich auch die Verschieberoutine in den Ordner /decodiert aus dem Skript otrkey-decode ausgeführt. Das war vorher nicht der Fall und das heißt, dass das Skript otrkey-decode entgegen meiner bisherigen Annahme durch den Cronjob doch ausgeführt wird und lediglich ein Problem mit dem otrdecoder, der durch den Cronjob angestoßen wird zu bestehen scheint. Die Dekodierung erfolgt nämlich nach wie vor nicht.

Jetzt bin ich zwar ein Stückchen schlauer, aber es bringt mir leider nix.
Wenn ich das gleiche Skript in der Autostart ausführe, funktioniert alles gut. Aber scheinbar mögen sich der Cron und der otrdecoder irgendwie nicht.

SGE
23.04.2009, 22:11
Das Verschieben der otrkeys mittels Skript otrkey-verschieb wird nach wie vor ohne Probleme ausgeführt. Nun aber wird plötzlich auch die Verschieberoutine in den Ordner /decodiert aus dem Skript otrkey-decode ausgeführt. Das war vorher nicht der Fall und das heißt, dass das Skript otrkey-decode entgegen meiner bisherigen Annahme durch den Cronjob doch ausgeführt wird und lediglich ein Problem mit dem otrdecoder, der durch den Cronjob angestoßen wird zu bestehen scheint. Die Dekodierung erfolgt nämlich nach wie vor nicht.


Das wollte ich dir auch vorschlagen, ersetz das Semikolon vor dem mv-Aufruf durch &&, dann wird das Verschieben auch nur ausgeführt wenn wirklich dekodiert wurde.

@PeGu
Du hast natürlich vollkommen recht was die Sicherheit vom OTR-Skript angeht, das ist eine LowLevel-Liga, auch gereade weil das alles in Klartext über den Äther geht. Deshalb war das ja auch nur eine allgemeine Anmerkung von mir.
Es gibt Sachen die man sich allgemein angewöhnen kann, dann macht man bei wichtigen Sachen auch keine Fehler. Ich bin halt auch auf Mehr-User-Systemen angemeldet und da mcht man sich ganz schnell Gedanken um so was.;)

Wolfgang_02
24.04.2009, 09:33
@Pegu

Ich hab das mit dem direkten Reinschreiben der Zugangsdaten in den Code auch schon versucht. Führte aber leider zum gleichen Ergebnis.

Ich habe das Gefühl, dass es sich hier um ein ganz spezifisches Problem des Cron auf meinem Rechner handelt, was so bei anderen nicht unbedingt reproduzierbar ist. Ich werde bei Gelegenheit das ganze nochmal auf einer anderen Linuxinstallation probieren und schauen ob es dann dort funktioniert; müsste ja eigentlich, da es bei euch ja auch ohne Probleme klappt.

@SGE


Das wollte ich dir auch vorschlagen, ersetz das Semikolon vor dem mv-Aufruf durch &&, dann wird das Verschieben auch nur ausgeführt wenn wirklich dekodiert wurde.

Ohja, super Tip. Vielen Dank. Mit dem Skripten hab ich's noch net so ;)


Ich danke euch auf jeden Fall, dass ihr euch so engagiert der sache angenommen habt.

Grüße