/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
read / grep /awk af input ?
Fra : Brian Ipsen


Dato : 11-08-03 11:06

Hej!

Jeg skal have et script til at tolke nogle SNMP traps. Jeg har styr ovcer
hvordan jeg får kaldt scripts fra snmptrapd - men hvordan jeg tolker
informationen i scriptet er lidt værre....

De to traps sender følgende til stdin til scriptet:

192.168.1.183
192.168.1.183
RFC1213-MIB::sysUpTime.0 1:0:45:13.90
SNMPv2-MIB::snmpTrapOID.0 DPT-SCSI-MIB::dptDevStatusChangedTrap
DPT-SCSI-MIB::dptScsiDevStatus.0.1.1.0.0 rebuilding
DPT-SCSI-MIB::dptScsiHbaNumber.0 0
DPT-SCSI-MIB::dptScsiBusNumber.0.1 1
DPT-SCSI-MIB::dptScsiDevId.0.1.1.0.0 1
DPT-SCSI-MIB::dptScsiDevLun.0.1.1.0.0 0
DPT-SCSI-MIB::dptScsiDevLevel.0.1.1.0.0 0
SNMP-COMMUNITY-MIB::snmpTrapAddress.0 192.168.1.183
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 "public"
SNMPv2-MIB::snmpTrapEnterprise.0 DPT-SCSI-MIB::dpt


192.168.1.183
192.168.1.183
RFC1213-MIB::sysUpTime.0 1:0:59:13.90
SNMPv2-MIB::snmpTrapOID.0 DPT-SCSI-MIB::dptDevStatusChangedTrap
DPT-SCSI-MIB::dptScsiDevStatus.0.1.1.0.0 optimal
DPT-SCSI-MIB::dptScsiHbaNumber.0 0
DPT-SCSI-MIB::dptScsiBusNumber.0.1 1
DPT-SCSI-MIB::dptScsiDevId.0.1.1.0.0 1
DPT-SCSI-MIB::dptScsiDevLun.0.1.1.0.0 0
DPT-SCSI-MIB::dptScsiDevLevel.0.1.1.0.0 0
SNMP-COMMUNITY-MIB::snmpTrapAddress.0 192.168.1.183
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 "public"
SNMPv2-MIB::snmpTrapEnterprise.0 DPT-SCSI-MIB::dpt


Jeg vil nu gerne fange/genkende "optimal" eller "rebuilding" fra linie 5 -
og så kunne returnere forskelligt output/exit-code baseret på netop hvad der
står....
Hvordan løses dette ?

Mvh.

/Brian



 
 
Lars Balker Rasmusse~ (11-08-2003)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 11-08-03 12:13

"Brian Ipsen" <bipsen@andebakken.dk> writes:
> 192.168.1.183
> 192.168.1.183
> RFC1213-MIB::sysUpTime.0 1:0:59:13.90
> SNMPv2-MIB::snmpTrapOID.0 DPT-SCSI-MIB::dptDevStatusChangedTrap
> DPT-SCSI-MIB::dptScsiDevStatus.0.1.1.0.0 optimal
> DPT-SCSI-MIB::dptScsiHbaNumber.0 0
> DPT-SCSI-MIB::dptScsiBusNumber.0.1 1
> DPT-SCSI-MIB::dptScsiDevId.0.1.1.0.0 1
> DPT-SCSI-MIB::dptScsiDevLun.0.1.1.0.0 0
> DPT-SCSI-MIB::dptScsiDevLevel.0.1.1.0.0 0
> SNMP-COMMUNITY-MIB::snmpTrapAddress.0 192.168.1.183
> SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 "public"
> SNMPv2-MIB::snmpTrapEnterprise.0 DPT-SCSI-MIB::dpt
>
>
> Jeg vil nu gerne fange/genkende "optimal" eller "rebuilding" fra linie 5 -
> og så kunne returnere forskelligt output/exit-code baseret på netop hvad der
> står....
> Hvordan løses dette ?

F.eks.:

perl -ne 'if ($. == 5 and /\s+(\S+)/) { exit 1 if $1 eq "rebuilding"; exit 0 }'
--
Lars Balker Rasmussen Consult::Perl

Morten (11-08-2003)
Kommentar
Fra : Morten


Dato : 11-08-03 20:38


> Jeg vil nu gerne fange/genkende "optimal" eller "rebuilding" fra linie 5 -
> og så kunne returnere forskelligt output/exit-code baseret på netop hvad der
> står....
> Hvordan løses dette ?

snmptrapd <args> | grep "DPT-SCSI-MIB::dptScsiDevStatus.0.1.1.0.0 optimal" > /dev/null; echo $?

Hvis den viser 0 fandtes den i variablen erklærede linie i outputtet.
Hvis den viser 1 fandtes den ikke. 0 og 1 er her grep's exit kode (man grep).

Morten




Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408843
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste