Jiep1963
Newbie
Hallo Liste,
wegen meinem schlechten Englisch bin ich von deutschen Texten abhängig. ps:
Aber dort konnte ich nichts zu meinem Problem finden (googel, eigene Bücher, Buchladen).
Aufgrund getesteter Situation bin ich mir nicht sicher ob es ein Bug ist, :???:
oder einfach nur ein Irrtum meinerseits.
Wer könnte mir also dabei helfen der Sache auf dem Grund zu gehen? :schockiert:
Gruß Achim, alias Jiep
System:penSUSE 10.2
------------
Situation:
Ein und ausgehende Dateien (Internet) sollen nach Standart abgearbeitet
werden.
Aufgabe:
* Es gibt mehrere Scripte von start.ksh und main.ksh. Diese haben unterschiedliche verschiedene Aufgaben und Abläufe für darunter liegende Scripte definiert.
* Main-Scripte regeln den logischen Ablauf, aber nicht die Detailsteuerung.
* Darunter liegende Scripte (zahlenmäßig viele) sollen wiederverwendbar sein, so das neu gestaltete main.scripte diese sofort nutzen koennen und regeln die Detail-Steuerung. Protokolle schreiben log err, mail, ftp, ssh, usw.
* Nach einem Rebot soll die Arbeit dort wieder aufgenommen werden, wo sie vor dem Reboot unterbrochen wurde.
* ...
Für den letzten Punkt "Arbeitsaufnahme" habe ich zwar eine (einiger maßen) logische korrekte Lösung gefunden ABER das trap-Kommando arbeitet nicht richtig!
Lade ich das trap-script dierekt in das main-Script, wird niemals das trap-Kommando nach meinen Vorstellunge ausgeführt.
Lade ich das trap-script innerhalb einer der while-Schleifen im Kommando-Script, wird es wie nach den Zufallsprinzip ignoriert oder korrekt ausgeführt »» kill -SIG PID »»
1.) Shell meldet z.B. nur "beendet"
ODER
2.) trap schreibt in Log+Error-Files UND erstellt die Datei mit Namen
Datei_SIG_Script_Stop
2.1) commando_ausfuehren.ksh findet Datei_SIG_Script_Stop und beendet sich
kontrolliert
---------------- vereinfachte Script-Darstellung -----------
con startet start.ksh
start.ksh
#
Datei_SIG_Script_Stop vorhanden?
ja: neu dann exit
ja: alt dann loeschen
#
neue Datei.tar.gz.pgp....
ja: starte main.ksh mit NeueDateNamen
nein: exit
#
### EOFstart.ksh
main.ksh ARGV[1]
#
. trap.ksh
. error_handling.ksh
. schreibe_log.ksh
. command_ausfuehren.ksh
. embeddet_functions.ksh
#
Kommandodatei.dat vorhanden?
ja: starte commando_ausfuehren.ksh Kommandodatei.dat
#
nein: echo "gpg NeueDateiNamen" > Kommandodatei.dat
echo "gz NeueDateiNamen" >> Kommandodatei.dat
echo "tar NeueDateiNamen" >> Kommandodatei.dat
echo "mv .... usw.usw.usw" >> Kommandodatei.dat
#
starte commando_ausfuehren.ksh Kommandodatei.dat
### EOFmain.ksh
trap.ksh
#
case UNUX.system
. Linux_SIG.dat
. HPUX_SIG.dat
. SUN_SIG.dat
. AIX_SIG.dat
esac
#
SIGNAL?
ja: schreibe bei SIG in logfine.txt
ja: touch Datei_SIG_Script_Stop
###EOFtrap.ksh
commando_ausfuehren.ksh $1
#
function_protokoll
#
(schreibe logfiles / Errorfiles / Mail an Admin ... je nach Situation
#
#
function_kommaodausfuehrung
#
kommandoaufruf parameter [parameter [parametert]]
#
#
while [ Kommandodatei.dat]
#
read <Kommandodatei.dat
while [ commandozeile]
#
Zeile[@] = commandozeile]
#
done
#
while[ Zeile ]
#
aktuelleskommado = Zeile[ n ]
cp -f Kommandodatei.dat Kommandodatei.sicher.$$
rm Kommandodatei.dat
#
while [ Zeile + 1 ]
Zeile[ n + 1 ] >> Kommandodatei.dat
Zeile++
done
#
function_kommaodausfuehrung aktuelleskommado
rm Kommandodatei.sicher.$$
#
Datei_SIG_Script_Stop vorhanden?
ja: exit
#
done #while_Zeile
#
done #while_Kommandodatei
#
### EOFcommando_ausfuehren.ksh
-----------------------------------------------------
wegen meinem schlechten Englisch bin ich von deutschen Texten abhängig. ps:
Aber dort konnte ich nichts zu meinem Problem finden (googel, eigene Bücher, Buchladen).
Aufgrund getesteter Situation bin ich mir nicht sicher ob es ein Bug ist, :???:
oder einfach nur ein Irrtum meinerseits.
Wer könnte mir also dabei helfen der Sache auf dem Grund zu gehen? :schockiert:
Gruß Achim, alias Jiep
System:penSUSE 10.2
------------
Situation:
Ein und ausgehende Dateien (Internet) sollen nach Standart abgearbeitet
werden.
Aufgabe:
* Es gibt mehrere Scripte von start.ksh und main.ksh. Diese haben unterschiedliche verschiedene Aufgaben und Abläufe für darunter liegende Scripte definiert.
* Main-Scripte regeln den logischen Ablauf, aber nicht die Detailsteuerung.
* Darunter liegende Scripte (zahlenmäßig viele) sollen wiederverwendbar sein, so das neu gestaltete main.scripte diese sofort nutzen koennen und regeln die Detail-Steuerung. Protokolle schreiben log err, mail, ftp, ssh, usw.
* Nach einem Rebot soll die Arbeit dort wieder aufgenommen werden, wo sie vor dem Reboot unterbrochen wurde.
* ...
Für den letzten Punkt "Arbeitsaufnahme" habe ich zwar eine (einiger maßen) logische korrekte Lösung gefunden ABER das trap-Kommando arbeitet nicht richtig!
Lade ich das trap-script dierekt in das main-Script, wird niemals das trap-Kommando nach meinen Vorstellunge ausgeführt.
Lade ich das trap-script innerhalb einer der while-Schleifen im Kommando-Script, wird es wie nach den Zufallsprinzip ignoriert oder korrekt ausgeführt »» kill -SIG PID »»
1.) Shell meldet z.B. nur "beendet"
ODER
2.) trap schreibt in Log+Error-Files UND erstellt die Datei mit Namen
Datei_SIG_Script_Stop
2.1) commando_ausfuehren.ksh findet Datei_SIG_Script_Stop und beendet sich
kontrolliert
---------------- vereinfachte Script-Darstellung -----------
con startet start.ksh
start.ksh
#
Datei_SIG_Script_Stop vorhanden?
ja: neu dann exit
ja: alt dann loeschen
#
neue Datei.tar.gz.pgp....
ja: starte main.ksh mit NeueDateNamen
nein: exit
#
### EOFstart.ksh
main.ksh ARGV[1]
#
. trap.ksh
. error_handling.ksh
. schreibe_log.ksh
. command_ausfuehren.ksh
. embeddet_functions.ksh
#
Kommandodatei.dat vorhanden?
ja: starte commando_ausfuehren.ksh Kommandodatei.dat
#
nein: echo "gpg NeueDateiNamen" > Kommandodatei.dat
echo "gz NeueDateiNamen" >> Kommandodatei.dat
echo "tar NeueDateiNamen" >> Kommandodatei.dat
echo "mv .... usw.usw.usw" >> Kommandodatei.dat
#
starte commando_ausfuehren.ksh Kommandodatei.dat
### EOFmain.ksh
trap.ksh
#
case UNUX.system
. Linux_SIG.dat
. HPUX_SIG.dat
. SUN_SIG.dat
. AIX_SIG.dat
esac
#
SIGNAL?
ja: schreibe bei SIG in logfine.txt
ja: touch Datei_SIG_Script_Stop
###EOFtrap.ksh
commando_ausfuehren.ksh $1
#
function_protokoll
#
(schreibe logfiles / Errorfiles / Mail an Admin ... je nach Situation
#
#
function_kommaodausfuehrung
#
kommandoaufruf parameter [parameter [parametert]]
#
#
while [ Kommandodatei.dat]
#
read <Kommandodatei.dat
while [ commandozeile]
#
Zeile[@] = commandozeile]
#
done
#
while[ Zeile ]
#
aktuelleskommado = Zeile[ n ]
cp -f Kommandodatei.dat Kommandodatei.sicher.$$
rm Kommandodatei.dat
#
while [ Zeile + 1 ]
Zeile[ n + 1 ] >> Kommandodatei.dat
Zeile++
done
#
function_kommaodausfuehrung aktuelleskommado
rm Kommandodatei.sicher.$$
#
Datei_SIG_Script_Stop vorhanden?
ja: exit
#
done #while_Zeile
#
done #while_Kommandodatei
#
### EOFcommando_ausfuehren.ksh
-----------------------------------------------------