KSH-Script unter sun solaris (ps + array)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

KSH-Script unter sun solaris (ps + array)

Beitrag von Duff » 14.01.2009 11:04:19

Hallo,

ich komme einfach nicht weiter.

Ich möchte unter sun solaris ein KSH-Skript schreiben, welches bestimmte Prozesse filtert und anschließend anzeigt. (Also nichts wildes)

Das ganze funktioniert auch soweit. Nur möchte ich jetzt noch bestimmte Ausgaben von ps -awwx nicht mit angezeigt bekommen.

Um nicht alles mit grep -v ... schreiben zu müssen würde ich es gerne mit einem Array lösen.

Dies sieht wie folgt aus:

Code: Alles auswählen

# Array error_filter
set -A error_filter grep less tail cat more

# Expression definieren
for err in ${error_filter[*]}; do
        expression=$expression"|grep -v $err"
done
exp=$(echo $expression|sed -e 's/^|\(.*\)$/\1/g')
echo "EXP: $exp:EXP"
Ausgabe:

Code: Alles auswählen

EXP: grep -v grep|grep -v less|grep -v tail|grep -v cat|grep -v more:EXP
Doch ich bekomme mein $exp nicht mit in die for-Schleife eingebaut:

Code: Alles auswählen

for i in `ps -awwx | "${exp}" | /usr/bin/grep admin | /usr/bin/awk '{print $1}'`
do
...
Die Ausgabe der for-Zeile sieht dann immer so aus:

Code: Alles auswählen

./my_script.ksh[19]: /usr/bin/grep -v grep|/usr/bin/grep -v less|/usr/bin/grep -v tail|/usr/bin/grep -v cat|/usr/bin/grep -v more:  not found
Was mache ich falsch?
Oh, yeah!

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Re: KSH-Script unter sun solaris (ps + array)

Beitrag von SubOptimal » 17.01.2009 22:54:37

Hi,
Duff hat geschrieben:Ich möchte unter sun solaris ein KSH-Skript schreiben, welches bestimmte Prozesse filtert und anschließend anzeigt. (Also nichts wildes)
Das ganze funktioniert auch soweit. Nur möchte ich jetzt noch bestimmte Ausgaben von ps -awwx nicht mit angezeigt bekommen.
Welche Ausgaben willst Du denn unterdrücken? Kannst Du mal ein Beispiel abgeben? Also die ungefilterte Ausgabe und dazu dann die, die Du gern hättest.

Code: Alles auswählen

EXP: grep -v grep|grep -v less|grep -v tail|grep -v cat|grep -v more:EXP
Das könntest Du mittels regexp in einem grep Aufruf zusammenfassen.

Code: Alles auswählen

grep -vE "grep|less|tail|cat|more:EXP"
# oder
egrep -v "grep|less|tail|cat|more:EXP"

Code: Alles auswählen

for i in `ps -awwx | "${exp}" | /usr/bin/grep admin | /usr/bin/awk '{print $1}'`
Willst Du nur Prozesse ID von Prozessen vom User admin angezeigt bekommen? Dann hilft u.U. die Option -o pid und -u von ps weiter.

SubOptimal

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: KSH-Script unter sun solaris (ps + array)

Beitrag von Duff » 18.01.2009 10:05:36

Erstmal Danke für deine Antwort.

Ausprobieren kann ich jetzt leider nichts, da ich nicht auf der Arbeit bin um dies unter Sun Solaris testen zu können. Es geht mir bei den ps-Befehl nicht um einen bestimmten user, sondern es geht um Applikationen, die mit admin anfangen und die ich ermitteln möchte.

Mich wundert, wieso ich das Array mit den Ausnahmen nicht in den ps-Befehl integriert bekomme.
Oh, yeah!

Antworten