Portál AbcLinuxu, 5. května 2025 21:23
./check_snmp -C sdsxpublic -H 10.0.14.111 -o sdsS0actualEnergyFlow.3 -l spotrebaa výstup je
SNMP OK - spotreba "0.001 kW" |Za znaménkem roury | nic není. Tam by měly být perfdata pro generování grafů. Zadám tedy
./check_snmp -C sdsxpublic -H 10.0.14.111 -o sdsS0actualEnergyFlow.3 -u kW -l spotreba -w 100 -c 200a výstup je
SNMP OK - spotreba 0 kW | spotreba=0Takže mám za rourou petrdata. Jenže ty jsou ořízlé jen na celé číslo bez desetiných míst. Jak tedy docílím, aby výstup vypadal takto:
SNMP OK - spotreba 0.001 kW | spotreba=0.001nebo ideálně takto
SNMP OK - spotreba 0.001 kW | spotreba=0.001,100,200Mooc díky za pomoc a omlouvám se za přesunutí:)
Řešení dotazu:
/check_snmp -C sdsxpublic -H 10.0.14.111 -o sdsS0actualEnergyFlow.1 | awk '{printf "%sActualEnergyFlow.1=%s\n",$0,gensub(/"/, "", "g",$(NF-2))*1000Pro graf teď dostávám výstup ve watech, což je papráda:)
SNMP OK - "0.004 kW" | ActualEnergyFlow.1=4Můžete mi ale, prosím poradit, jak dostat do skriptu ten příkaz s tím, že zachovám alespoň ty proměnné -C -H -o ?
/cesta/k/pluginu/check_snmp $1 $2 $3 | awk '{printf "%sActualEnergyFlow.1=%s\n",$0,gensub(/"/, "", "g",$(NF-2))*1000Kde -C bude $1, -H $2 a -o $3. Pak bys zadal jen
./energyflow.sh -C sdsxpublic -H 10.0.14.111 -o sdsS0actualEnergyFlow.3
-C sdsxpublic -H 10.0.14.111 -o sdsS0actualEnergyFlow.3
a to se mi vloží do toho příkazu místo $1 $2 $3(nebo cokoliv jiného v tomt pořadí). Upřímně se omluvám, že s tím pořád otravuju, ale jsem bezradný:(
#!/bin/sh /usr/lib/nagios/plugins/check_snmp "$1" "$2" "$3" "$4" "$5" "$6" | awk '{printf "%sActualEnergyFlow=%s;200;300\n",$0,gensub(/"/, "", "g",$(NF-2))*1000}'Mockrát díky za trpělivost.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.