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

[solved] Cronjobs funkt. plötzlich nur noch mit abs. Pfad

*Mr.X*

Newbie
Guten Tag an die Meister der Linux-Konsole ;),

Auf unserem Webserver laufen über cron etliche Scripte (Spruch der Woche ändern etc.) Diese sind alle von der Firma installiert worden, die unsere Präsentation gemacht hat. Leider gibt es mit dieser Firma mittlerweile Knatsch, so daß von dort keine Hilfe zu erwarten ist.
Seit einiger Zeit (seit wann genau kann ich leider nicht sagen) laufen diese Scripte nicht mehr. Über die E-Mail Benachrichtigung des Cron-Daemon habe ich dann die Fehlermeldungen rausbekommen. Z.B. verursacht die Zeile:
ls $SPRUECHE_DIR/spruch.* | wc -l
den Fehler: "/usr/local/bin/run_spruch_cycle: line 7: wc: command not found"
Ersetze ich jetzt das wc durch /usr/bin/wc, dann funktioniert es wieder.

Auf der Komandozeile in der Konsole kann ich wc aus jedem Pfad heraus problemlos aufrufen. Wie kann es sein, daß plötzlich diese absoluten Pfadangaben notwendig sind? Von den infragekommenden Zugriffsberechtigten auf den Server hat natürlich "niemand was geändert".

Mit meinen bescheidenen Linuxkenntnissen komme ich nicht weiter. Es funktioniert zwar jetzt wieder, aber der Grund würd mich schon interessieren. Nicht das wir noch einen ungebetenen Gast auf unserem Server haben.

uname -a:
Linux xxx 2.4.21-99-default #1 Wed Sep 24 13:30:51 UTC 2003 i686 i686 i386 GNU/Linux

Besten Dan im Voraus
Mr.X
 

oc2pus

Ultimate Guru
das es vorher funktioniert hat war einfach "Glück".

der cron-daemon hat keine Umgebung, insbesondere kennt er keine Pfade. Deshlab sollte man in cronjobs immer die expliziten Pfade angeben zu den Programmen.

wahrscheinlich wurde etwas geändert an der Systemweiten Pfad-Einstellung und nun sind bestimmte Pfade nicht mehr für den cron "sichtbar" was zu deinen Problemen führt.
 
Doch, per default hat Cron ein paar Pfade, so wie sie in /etc/crontab stehen:
Code:
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
 
OP
*Mr.X*

*Mr.X*

Newbie
Dank euch für die rasend schnelle Antwort :)

Der Tip von jengelh war entscheidend.
In der User crontab stand:

PATH=/us/ubin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin

Wer das nun wieder da reingemurkst hat :roll:

Hab ich eine Chance rauszukriegen, wer wann die User crontab geändert hat?

Besten Dank
Mr.X
 
OP
*Mr.X*

*Mr.X*

Newbie
...und weil ich einmal am Fragen bin ;)

Beim Testen der cron Scripte ist mir folgendes aufgefallen: Aktuelles Verzeichnis ist /usr/local/bin. In diesem Verzeichnis gibt es z.B. ein Script run_spruch_cycle. Rufe ich dieses Script am Prompt nur mit Namen auf, erhalte ich folgendes:
Code:
xxx:/usr/local/bin # run_spruch_cycle
bash: run_spruch_cycle: command not found
xxx:/usr/local/bin #
Mit Angabe des kompletten Pfades, also /usr/local/bin/run_spruch_cycle wird das Script ausgeführt!
Ist das auch "normal" oder gibts hier doch irgendwelche Pfadprobleme?

Gruß Mr.X
 
Oben