Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Cronjob Solaris + SQL-Skript Oracle





Frage

Hallo, Heute habe ich wieder mal ein Problem. Ich habe ein Shellskript programmiert, welches u.a SQL Plus von Oracle mit einem SQL-Skript startet. Dieses Skript will ich als Cronjob ausführen. Ausführung auf der Shell, also manuell, klappt. Als Cronjob ausgeführt, wird das SQL-Skript nicht bzw. nicht korrekt ausgeführt. U.a. werden nicht einmal die Spool-Dateien, die bei manueller Ausführung ohne Probleme ausgeführt werden erstellt. Kann mir einer weiterhelfen?

Antwort 1 von hendrikw

Bei cron-Jobs musst Du in den Skripts dafür sorgen, dass der richtige User benutzt wird (su - ...) und die nötigen Umgebungsvariablen gesetzt werden, möglichst absolute Pfadnamen benutzt werden.
mfg
Hendrik

Antwort 2 von Mike Hinz

Habe ich ausprobiert und alle Pfade waren auf schon absolut eingerichtet.

Habe den Befehl
su - benutzer -c "/pfad/shellskript"
genutzt - ohne Erfolg.

Das im Skript aufgerufene SQL-Skript schafft es als Cronjob nicht, seine Ausgaben über den Spool-Befehl in die entsprechenden Dateien zu schieben.

Antwort 3 von hendrikw

Und wie siehts mit den Umgebungsvariablen aus ? Steht was im Log (Fehlermeldungen) ?
mfg
Hendrik

Antwort 4 von Mike Hinz

Habe schon diverse Umgebungsvariablen (Pfade, etc.) per set im Shellskript eingefügt. Leider brachte das auch nichts.

Habe auch mal die Bildschirm-Ausgaben mit Befehlsaufrufen in eine Datei geleitet, um zu sehen, was überhaupt gemacht wird. Dort werden die Abfragen in SQL ausgeführt und auch ausgegeben, aber leider nicht in die per Spool angegebenen Dateien geschrieben.

Antwort 5 von hendrikw

Und die Spool-Dateien sind auch mit absolutem Pfad angegeben ?
Sonst fällt mir auch nichts mehr ein.
mfg
Hendrik

Antwort 6 von Mike Hinz

Die Spool-Dateien auch:

spool /pfad/datei;

Ich schätze, das irgendeine Einstellung SQLPlus daran hindert, seinen Output in die Dateien zu schreiben.

Wenn ich das Skript aber manuell starte, funktioniert alles.



Antwort 7 von hendrikw

Dann fällt mir als letzte Prüfung, die man unter Unix immer machen kann, ein, nachzuschauen, ob der Benutzer auch Schreibrechte auf die Spool-dateien/-verzeichnisse hat.
mfg
Hendrik