Shell + Crontab

G

grechos

Eroberer
Hallöle an alle
ich habe ein Problem mit der Crontab
und zwar ein Skript was ich manuell anstoße geht sauber durch
Über die Crontab aber nicht
weiß da jemand ne Lösung???


Gruß an Alle
 
Hallo

Wenn ich meine Glaskugel drehe, sagt sie mir dass du eventuell die Pfade nicht gesetzt hast.

Sorry, aber ohne Informationen über die Fehlermeldungen oder das Script selbst kann ich nicht wirklich helfen.

Unter welchen Benutzer auf welchem System soll was passieren?

Gruß Wolfgang
 
hi wolfgang ich habe deinen Tipp genommen
ich war echt etwas desorientiert
also es war ein Datenbank environment was nicht gesetzt war

thread schliessen

Danke
 
Ich schreibe es mal hier rein weil ich auch ein solches Problem habe.

Ich habe ein script start.sh, wenn ich das in dem Ordner starte wo es liegt startet es.

Wenn ich es aus dem Rootverzeichnis starte kommmt folgender Fehler.

Exception in thread "main" java.lang.NoClassDefFoundError: org/select/start


Und wenn ich es pero crontab ausführen möchte passiert auch nichts.
Es soll alle 20 Minuten ausgeführt werden

*/20 * * * * /bin/sh /srv/www/web300/html/bobo/start.sh


Hat einer eine Idee ?

danke uns Gruß
bobo
 
Hast Du denn schonmal die Umgebungsvariablen für Java kontrolliert?
 
Hallo

Du solltest dir im Klaren sein, dass Scripte die nicht aus der Shell gestartet werden, auch die userspezifischen Umgebungsvariablen nicht kennen.
Deshalb ist es immer ratsam, diese entweder im Script selbst, oder in der Crontab zu definieren.
Der sicherste Weg ist es dabei, das am Beginn des Scriptes zu tun.
Die Pathvariable für root sollte aus Sicherheitsgründen dabei ohnehin nie . (aktuelles Verzeichnis) enthalten.
In solchen Scripten einfach alles mit absolutem Pfad ansprechen, oder vorher in Variablen selbst setzen.

Gruß Wolfgang
 
Das hat sich gut angehört, leider hab ich es so aber nicht begriffen. :(
Was genau muß ich denn in crontab schreiben ?

@Schlaubi. nein, weil ich nicht weiß wie ich das machen muß


Gruß
bobo
 
Zuletzt bearbeitet:
Das kommt ganz drauf an, welche Umgebungsvariablen dein Script benötigt. Wie es scheint - ist auch schon gefallen - sind manche dieser Variablen nicht oder anders gesetzt, wenn der CRON-Prozess deinen Script ausführt. Deshalb sollte alles notwendige laut Wolfgang in den Script gepackt werden, damit CRON (wofür es ja existiert) nur noch das Script anstoßen muss, ihm aber nicht noch mit weiteren Input dienen muss.

Wenn möglich / erwünscht kannst du ja ein Fragment / das komplette Script posten; ich werde gerne so gut ich kann helfen :)
 
Hmm... Ich bin gerade in Eile deswegen hier nur kurz einmal ein Schnellschuß in die Luft: ich denke beim ausführen weiß der CRON-Prozess nicht, wo dein PHP Interpreter liegt. Kann das sein? Wie lautet denn der Eintrag bei dir in der crontab? Lass den cmd ruhig nochmals via CRON ausführen und werfe dann einen Blick in die /var/log/cron (?) - falls diese schon zu groß ist nur den hinteren Teil anzeigen lassen via tail -n50 /var/log/cron...

Tip: Die PATH Variable (dort wo die bash nach den Befehlen sucht) kann mal übrigens direkt in der crontab angeben (z.B. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin).
 
*/20 * * * * /bin/sh /srv/www/web300/html/bobo/selectbf.sh

Ich habe noch einen Eintrag zu einem anderen Script, das funzt tadellos
 
Zuletzt bearbeitet:
In selectbf.sh sind lauter relative Pfade. Du solltest vorher in das entsprechende Verzeichnis wechseln, damit sie gültig sind. Also editier selectbf.sh, füge als erste Zeile cd /absolute/path/to/selectbf.sh ein.
Des weiteren liegt selectbf.sh ursprünglich in einem bin-Verzeichnis, bei Dir in bobo. Es ist nicht ratsam, die Verzeichnisstruktur zu ändern.

Gruss, Xanti
 
Danke für die Info, das werde ich heute Abend einmal testen.

edit: das wars, danke Xanti !!!

Gruß
bobo
 
Zuletzt bearbeitet:

Ähnliche Themen

Hilfe für ein shell script

Falsche Ausgabe von $LINENO

mehrere Textdateien gleichzeitig öffnen.

Adobe Acrobat Reader Linux

Crontab und Scripts - Problem

Zurück
Oben