Cron führt Shell-skrip nicht (richtig) aus

Morgen.

Aaalso , ich habe folgendes Problem :
Ich hab ein bash-script geschrieben , welches eine HTML generiert.
Diese Script soll Stündlich ausgeführt werden.
So weit, so gut.

also was habe ich gemacht ?
es mit crontab -e in die crontab eingetragen

Code:
SHELL=/bin/sh
PATH=/usr/bin:user/sbin:/sbin:/bin:
0 * * * * * /usr/bin/genstat
Dieses Script läuft als root.

Und nun kommt der Klopper :
ich starte das Script händisch : Alles einwandfrei
cron startet das script : nix tut sich

In der Email die Cron per LTA Root zustellt steht dann sowas wie :
Code:
Subject: Cron <root@Gatekeeper> * /usr/bin/genstat
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:user/sbin:/sbin:/bin:>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
Status: RO

/bin/sh: line 1: ./04.07.31.02.html: Permission denied

oder :
Code:
Subject: Cron <root@Gatekeeper> * genstat
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Status: RO

/bin/sh: line 1: 04.07.31.02.html: command not found

besonders interessant finde ich dabei, dass ein Dateiname wie er vom Skript erzeugt wird angeblich ausgeführt werden soll ....

Mein Script ging wie folgt los :
Code:
FNAME=$(date +%y.%m.%d.%H.html)
ich habe mir nen Dateinamen generiert.

Falls jemand Vorschläge hat .. her damit .. ich geh jetzt ins Bett , dieser Cron hat mich geschaff t... aber morgen gehts in die zweite runde ;)

Alle Rechtschreibfehler oder sonstiger Schwachsinn sind auf die Uhrzeit zurückzuführen ... n8

CubiC
 
@CubiC

Also, ich weiss ja nicht, welchen Pfad Du da so angegeben hast??!

/bin/sh: line 1: ./04.07.31.02.html: Permission denied

Also, entweder hat das Script dort keine Schreibrechte in dem Verzeichnis oder schau mal nach den Rechten und dem Owner des Scripts. Ist das auch "root"?

Eine weitere Idee wäre es, wenn Du es mal in der folgenden Form versuchst:

Code:
FNAME=`date +%y.%m.%d.%H.html`

echo "$FNAME"

Dann ein "chmod 700 <file>" und dann mal starten.

bash-2.05b$ ./test_date
04.07.31.13.html

Funktioniert! Ansonsten würde ich Dich bitten, mal ein paar Zeichen mehr vom Script zu posten, insbesonders die, in denen dann die Datei erzeugt wird. Ich weiss ja nicht, ob Du dort einfach mit "cat" oder "echo" arbeitest oder wie Du die File erzeugst.

MfG Rushjo
 
Guten Morgen.

@Soox
Danke soweit, ich hab den vollstaendigen Pfad fuer date benutzt leider ohne Ergebnis.

@Rushjo :
Auch danke *g*
In dem Zielverz darf das Script schreiben , und der owner des scriptes ist root.

Wie gesagt , der Gag ist ja dass wenn ich das Script starte alles laeuft ... nur wenn cron das versucht gehts in die Buchse.

Das Beste an der Fehlermeldung die ich per mail bekomme ist, dass der Dateiname x.x.x.02.html eine laegnst veraltete Datei ist die es in dem Zielverz. gar nicht gibt. Ich schaetze er schaut irgendwie immer ins falsche Verzeichnis ... blos in welches (/root?) ?

Hab inzwischen sogar das Homedir auf /usr/bin geaendert damit er in seinem /root nicht rumwerkelt , denn nachdem ich die besagte htmldatei aus /root entfernt habe hat sich der Name in der Fehlermeldung ebenfalls geaendert.

Ich mach dann mal weiter .. wenn sich was neues ergibt poste ichs *g* ..

EDIT :
Heureka :)
Also es war die crontab datei .. ich hatte eine Spalte zuviel geschrieben , die hat ihn durcheinandergebracht ... es musste was triviales sein, so ich mich hier abgemüht hab. Man gibt sich immer die größte Mühe bei den allerkleinsten Dummheiten *g*

also :

0 * * * * CMD -> ich hatte einen Stern zuviel (daher auch der beliebige Dateiname)

Danke

CubiC
 
Zurück
Oben