Mit awk Output aus „db2 list applications“ aufbereiten
Hi folks,
db2pd -alldbs -apinfo liefert ja wirklich schon allerhand nützliche Informationen, die sich aber leider nur schlecht automatisiert weiterverarbeiten lassen.
Klar, es gibt zahlreiche Table Functions, Stored Procs und anderes Gedöns, das aber leider einen Connect an die Datenbank(en) erforderlich macht. Ich will stattdessen eine Wartungsaktivität vorbereiten, wie z.B. ein Full Offline Database Backup, und möchte daher alle aktiven Verbindungen gezielt für nur eine Datenbank ermitteln und dann terminieren.
Es führt immer noch kein Weg an „db2 list applications show detail“ vorbei, der genau alle erforderlichen Informationen ohne einen DB2 CONNECT liefert. Aber leider läßt sich auch dieser Output, obwohl rechtlich übersichtlich und bereits spaltenorientiert aufbereitet, immer noch nicht ohne weitere Vorbereitung automatisiert weiterverarbeiten.
Hier nur ein Beispiel, wie die wichtigsten Informationen aus „db2 list applications show details“ spaltenorientiert mit awk auf für Folgeverarbeitung mit anderen Unix Commands (awk, cut, sed) oder Perl Statements aufbereitet werden kann:
db2 list applications show detail | awk '{if (length($0)) print substr($0,1,16)":"substr($0,130,20)":"substr($0,151,10)":"substr($0,162,30)":"substr($0,259,10)":"substr($0,275,20)":",substr($0,306,20)":"substr($0,333,8)}'
Das funktioniert ausgezeichnet für DB2 10.5, und ich meine sogar ab DB2 9.7. Sollte es mal nicht passen, einfach die Spaltenpositionen korrigieren, oder die Auswahl ergänzen.
Der Output daraus läßt sich dann z.B. mit akw F“:“ {‚print $1 $2 $n …‘}‘ sehr einfach weiterverarbeite, um daraus z.B. einen „db2 force application“ zu generieren.
Comments
Comments are closed.