Aw: Re: Re: bash script - extend - output as integer

"Dennis Schneck" <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <trinity-88a7e1c9-f315-4d37-9630-0580160f49ea-1587527891790@3c-app-webde-bap26>
Hi Paul,

thank you very much.

I will try to write a agent!

Gesendet: Dienstag, 21. April 2020 um 23:21 Uhr

Von: "Paul Herring" <[email protected]>

An: "Dennis Schneck" <[email protected]>

Cc: [email protected]

Betreff: Re: Re: bash script - extend - output as integer

On Tue, Apr 21, 2020 at 8:14 PM Dennis Schneck <[email protected] > wrote:

Hello Paul,

thanks but exit code only max 255 (or I am wrong?) but I need 4 digets for example 9999

so is there another way ?

From the same link:

> Integer exit codes are limited to a range of 0–255. For values that are likely to exceed 256, either use the standard output of the script (which will be typed as a string) or a different method of extending the agent.

So. Your options are

- use STRING anyway (their first suggestion)

- don't use extend and write a proper agent (their second)

- old-skool - use scaled integers, where 0 represents - er - 0. And 255 represents (to pick your example) 9999 - quick example of this third:

---

#!/bin/bash -u

val=${1:-0}

scaled=$((255*val/9999))

exit ${scaled}

---

$ for x in 1 10 39 40 41 250 500 5000 7500 9999; do ./scaled.sh ${x}; echo "${x} -> $?"; done

1 -> 0

10 -> 0

39 -> 0

40 -> 1

41 -> 1

250 -> 6

500 -> 12

5000 -> 127

7500 -> 191

9999 -> 255

----

Note each unit of output represents a range of about 40 input units. If you can 'tighten' that 0-9999 range it may improve, bur your granularity is still stuck to 256 values.

Out of range numbers go silly with that specific script - you'd need error checking:

$ for x in 10000 20000 30000 40000; do ./scaled.sh ${x}; echo "${x} -> $?"; done

10000 -> 255

20000 -> 254

30000 -> 253

40000 -> 252

Gesendet: Dienstag, 21. April 2020 um 15:36 Uhr

Von: "Paul Herring" <[email protected] >

An: "Dennis Schneck" <[email protected] >

Cc: [email protected]

Betreff: Re: bash script - extend - output as integer

https://docs.fedoraproject.org/en-US/Fedora/18/html/System_Administrators_Guide/sect-System_Monitoring_Tools-Net-SNMP-Extending.html

> Note that the exit code (“8” in this example) is provided as an INTEGER type and any output is provided as a STRING type.

You want get_TempOfRoom1.sh to exit (the return code) with the value you want in the INTEGER, not echo it out.

On Tue, Apr 21, 2020 at 1:56 PM Dennis Schneck <[email protected] > wrote:

Hello,

how to get an integer value from a bash script if using "extend" in /etc/snmp/snmpd.conf ?

extend TempOfRoom1 /scripts/get_TempOfRoom1.sh

got only STRING but no INTEGER

NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."TempOfRoom1" = STRING: 2210

like to get:

NET-SNMP-EXTEND-MIB::nsExtendResult."TempOfRoom1" = INTEGER: 2210 insted of "NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."TempOfRoom1" = STRING: 2210"

--

PJH

_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.