Ausführung Skriptteil beenden ohne Skript stop

Hallo,

ich habe ein Skript, mit dem ich Datenbanken exportiere.
Nach dem Export muss noch eine Aktion ausgeführt werden, aber eben erst, wenn der Export fertig ist.
Also habe ich in meinem Skript ein tail auf das Logfile.

Mein Problem ist, dass ich beim Strg+C ja auch das Skript selbst beende, die Abschlussaktion also nicht ausgeführt wird.

Was ich schon probiert habe ist, das ich den tail-Befehl in eine Datei schreibe und die dann als Skript starte:

echo „tail -f expdp_detail_${ORACLE_SID}_INITIAL_${TIMESTAMP}.log“ >tail_export_logfile.ksh
ksh tail_export_logfile.ksh

Leider bringt dass aber auch nicht den Erfolg.

Hat jemand eine Lösung ?

Grüße

Chris

Hallo Christian,

ich habe ein Skript, mit dem ich Datenbanken exportiere.
Nach dem Export muss noch eine Aktion ausgeführt werden, aber
eben erst, wenn der Export fertig ist.

Ich weiss nicht ob ich dich richtig verstehe, aber wenn Du zwei Befehle nacheinander ausführen willst und der letzte soll nur ausgeführt werden, wenn der erste erfolgreich war, kannst Du beide mit && verknüpfen:

DB\_export && Abschlussaktion

Gilt hoffentlich für die Kornshell auch.

Viele Grüße
Marvin

Hi Marvin,

also nach deinem Vorschlag würde ich den Export und meine Abschlussaktion jeweils in eine Variable packen und diese dann verknüpft aufrufen ?

Das kann ich mal probieren.

Danke !

Grüße

Chris

Hi,

also, das funktioniert nicht, dabei werden beide Funktionen direkt hintereinander gestartet.

Grüße

Chris

Hallo chrisD,

also, das funktioniert nicht, dabei werden beide Funktionen
direkt hintereinander gestartet.

Nein, wieso Funktionen? Da habe ich mich unklar ausgedrückt, ich meinte zwei Skripte, einz zum DB-Export und eins zum Aufräumen.
So etwas:
Skript1:

#!/bin/bash
echo "Skript 1"
date
sleep 60
echo "Fertig"
exit 0

Skript2:

#!/bin/bash
echo "Skript 2"
date
exit 0

Wenn ich beide so verknüpfe

./skript1 && ./skript2

startet zuerst Skript1 und skript2 wartet auf die erfolgreiche Beendigung von Skript1 und startet erst dann.
Resultat:

./skript1 && ./skript2
Skript 1
Fr 19. Okt 14:15:29 CEST 2012
Fertig
Skript 2
Fr 19. Okt 14:16:29 CEST 2012

Viele Grüße
Marvin

1 Like

Okay, ich sehe auch gerade, dass ich mein Problem nicht wirklich genau beschrieben hatte.

Also, der Export wird mit „&“ in den den Hintergrund verbannt, damit er mit beim Netzwerk-Wackler nicht abbricht.

Ich hab jetzt aber auch die Lösung, nach start des exports kommt ein „wait“ auf die prozessid. Damit ist sicher gestellt, dass alle anderen Aktionen erst danach laufen.