shell befehl läuft via cronjob nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

shell befehl läuft via cronjob nicht

Beitrag von urmele » 07.07.2004 10:33:16

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

ernohl
Beiträge: 1248
Registriert: 04.07.2002 08:11:56
Wohnort: HL

Re: shell befehl läuft via cronjob nicht

Beitrag von ernohl » 07.07.2004 10:39:01

urmele hat geschrieben:Hat irgendjemand einen Tipp für mich?
Den cron-Job mit absoluten Pfad aufrufen und im Script die Variable PATH setzen.
Gruß
ernohl

urmele
Beiträge: 16
Registriert: 23.07.2003 23:20:17

Beitrag von urmele » 07.07.2004 10:42:23

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.

ernohl
Beiträge: 1248
Registriert: 04.07.2002 08:11:56
Wohnort: HL

Beitrag von ernohl » 07.07.2004 11:54:11

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.
Gruß
ernohl

Antworten