• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Script per crontab starten klappt nicht ???

mehlbox

Newbie
Hallo zusammen,

habe einige scripts erstellt und wollte diese per crontab starten. Habe sie auch in der crontab eingerichtet und wenn ich sie per Hand starte funktionieren sie auch, wenn sie per cron gestartet werden bekomme ich immer folgende Fehlermdeldungen:

Message 1:
From root@DV09FTP01 Mon Nov 7 16:30:00 2005
Date: Mon, 7 Nov 2005 16:30:00 +0100
From: root@DV09FTP01 (Cron Daemon)
To: root@DV09FTP01
Subject: Cron <root@DV09FTP01> run-parts /opt/scripts/sendftp/infowerk_1
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/scripts:/opt:/opt/scripts/wartung:/opt/scripts/sendftp:>
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <HOME=/>
X-Cron-Env: <LOGNAME=root>

Not a directory: /opt/scripts/sendftp/infowerk_1

Die crontab sieht so aus:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/scripts:/opt:/opt/scripts/wartung:/opt/scripts/sendftp:
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
21 4 * * 5 root run-parts /opt/scripts/wartung/wartung.sh |mail -s "Statusbericht DV09FTP01" admin@test
0,30 * * * 1-5 root run-parts /opt/scripts/sendftp/infowerk_1
15,45 * * * 1-5 root run-parts /opt/scripts/sendftp/insole_1 2> /dev/null

Ich benutze Redhat ES3 Version 4
Vielen Dank für Eure Hilfe.

Gruß Mehlbox
 

admine

Ultimate Guru
Auch wenn du eine PATH-Variable für Cron gesetzt hast, so kann es immer noch möglich sein,
dass in deinen Scripten Befehle stehen, welche in der Cron-Umgebung nicht gefunden werden.
Prüfe doch das als Erstes.
 
OP
mehlbox

mehlbox

Newbie
Hallo grüß Dich,

wenn ich die Scripte per Hand starte laufen sie ja. Wie soll ich testen ob die Scripte und welche Befehle in einer Cron Umgebung?? nicht funktionieren???

Danke und Gruß mehlbox
 
OP
mehlbox

mehlbox

Newbie
Komisch ist nur das alle Dateien und Ordner da sind nur wenn der cronjob gestartet wird funktioniert es nicht, per hand klappt ja alles??

Verzweifel gleich. . .

Danke und Gruß mehlbox
 

taki

Advanced Hacker
Ist /opt/scripts/sendftp/infowerk_1 eine ausführbare Datei? Enthält sie einen korrekten Shebang ( "#!/bin/bash" o.ä. in erster Zeile)? Groß-/Kleinschreibung korrekt? Kommt die Fehlermeldung evtl. aus dem Skript selbst?
 
OP
mehlbox

mehlbox

Newbie
Ja ein shebang steht ganz oben im script !! Alles beachtet Grosskleinschreibung usw. alle ordner und dateien sind da und manuell gestartet funktioniert das script ja auch einwandfrei !!!

Gruß mehlbox
 
Wichtig bei "cron":
- Es wird nur eine Miniumgebung gesetzt: ~/.profile ~/.bashrc ... werden nicht durchlaufen. => Keine Usersettings vorhanden
- Auf manchen "großen" UNIX-Kisten: cron ruft zwingend "/bin/sh" auf, auch wenn "Shebang" gesetzt ist. Code wie "export VARIABLE=xxx" muss dann ersetzt werden durch "export VARIABLE ; VARIABLE=xxx""
- Auf "großen alten" UNIX Kisten bei /bin/sh: Hinter ">" werden Variablen nicht ersetzt. "> $VARIABLE" geht zwar bei bash, bei "sh" aber nicht.
Deshalb nutze ich bei cron immer: ( Bei linux mit "bash" statt "ksh".
* * ... ( . ./.profile ; ksh /home/haveaniceday/meinskript )

Haveaniceday

PS: Ich meine aber unter Linux würden die cronjobs mit bash und nicht mit sh aufgerufen.
 
OP
mehlbox

mehlbox

Newbie
Hallo zusammen,

es lag wohl an root und run-parts und das ich es in der globalen crontab gestartet habe. habe nun ein usercron angelegt und nun klappt es auch mit dem nachbarn

vielen dank für eure hilfe. . .

mfg

mehlbox
 
Oben