Hallo,
ich habe da ein Problem, bei dem ich leider nicht mehr weiterkomme.
Habe mir ein PHP Script gebastelt, welches zwei Console-Befehle ausführt und das Egebnis in eine Datei schreibt.
Rufe ich dieses Script auf der Console mittels
"php script.php" auf, so funktioniert das ganze einwandfrei. Die Befehle werden ausgeführt, die Logdatei mit der Ausgabe gefüllt.
Sobald ich das ganze aber als Cronjob einbinde wird zwar noch die zu schreibende Datei angelegt (jedoch ohne Inhalt, also 0 byte), der Befehl zuvor jedoch nicht ausgeführt.
Hat irgendjemand einen Tipp für mich?
Gruß
Stefan
shell befehl läuft via cronjob nicht
Re: shell befehl läuft via cronjob nicht
Den cron-Job mit absoluten Pfad aufrufen und im Script die Variable PATH setzen.urmele hat geschrieben:Hat irgendjemand einen Tipp für mich?
Gruß
ernohl
ernohl
Hallo,
danke für die schnelle Antwort.
der cronjob sieht wie folgt aus:
1 * * * * root /usr/bin/php /www/htdocs/user1/cron.php
Und das Script wie folgt:
<?
exec("/usr/bin/hhadmin >>/var/log/hadmin.log");
exec("/usr/bin/hhadmin aliases >>/var/log/hadmin.log");
?>
wenn ich den befehl (hhadmin) direkt im cronjob ausführen lasse passiert ebenfalls nichts, d.h. befehl wird nicht ausgeführt, logdatei wird ohne inhalt angelegt. jedoch auch auf der console direkt funktioniert alles einwandfrei.
danke für die schnelle Antwort.
der cronjob sieht wie folgt aus:
1 * * * * root /usr/bin/php /www/htdocs/user1/cron.php
Und das Script wie folgt:
<?
exec("/usr/bin/hhadmin >>/var/log/hadmin.log");
exec("/usr/bin/hhadmin aliases >>/var/log/hadmin.log");
?>
wenn ich den befehl (hhadmin) direkt im cronjob ausführen lasse passiert ebenfalls nichts, d.h. befehl wird nicht ausgeführt, logdatei wird ohne inhalt angelegt. jedoch auch auf der console direkt funktioniert alles einwandfrei.
hhadmin benötigt sicherlich Umgebungsvariablen. Diese musst du im cron-Job setzen. Schau dir beim erfolgreichen Ausführen aus der shell an, welche gesetzt sind, versuche herauszufinden, welche hhadmin davon benötigt und setze sie im Job.
Der cron-Job kennt nicht deine Systemumgebung, die in /etc/profile, .bash_profile oder wo auch immer gesetzt wird.
Der cron-Job kennt nicht deine Systemumgebung, die in /etc/profile, .bash_profile oder wo auch immer gesetzt wird.
Gruß
ernohl
ernohl