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
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.
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
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.
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
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.
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
mfg
Hendrik

