Re: OT: Shell Scripting / parsen von tnsping Output / Oracle Client
Hallo Sven,
On Mon, Jan 12, 2009 at 04:30:40PM +0100, Sven wrote:
> Ich sollte vom tnsping-Output (siehe unten Beispiel) den Hostnamen
> (ertgebrt4) und Port (2556) ermitteln.
>
> Wie parse ich das am Besten mit der Shell?
>
> $ tnsping PROD
>
> TNS Ping Utility for Linux: Version 9.2.0.6.0 - Production on
> 12-JAN-2009 16:20:57
>
> Copyright (c) 1997 Oracle Corporation. All rights reserved.
>
> Used parameter files:
> /opt/oracle/product/9.2.0/network/admin/sqlnet.ora
>
> Used LDAP adapter to resolve the alias
> Attempting to contact
> (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ertgebrt4)(PORT=2556)))(CONNECT_DATA=(SID=PROD234)(SERVER=SHARED)))
> OK (10 msec)
Den Host bekommst du mit
sed -e 's/.*HOST=\([a-zA-Z0-9]*\).*/\1/'
Und den Port mit
sed -e 's/.*PORT=\([0-9]*\).*/\1/'
(wobei der Host-name nur Buchstaben und Zahlen enthalten darf, sonst
musst du die obere Regel ändern )
Um sicher zu gehen würde ich noch grep verwenden um nur diese eine Zeile
zu bekommen, also:
tnsping PROD | grep "^(DESCRIPTION" | sed -e 's/.*HOST=\([a-zA-Z0-9]*\).*/\1/'
tnsping PROD | grep "^(DESCRIPTION" | sed -e 's/.*PORT=\([0-9]*\).*/\1/'
Axel
Reply to: