In the man page I see the following:
-L LOGOPTS Toggle various defaults controlling logging:
e: log to standard error
o: log to standard output
This excites me very much because I’m in a situation where it would be
advantageous for me to capture errors from STDOUT rather than from
STDERR.
If I run the command:
snmpget -v1 -ccommString -Lo 172.16.x.x .1.2.3.4.5.6.7.8.9
I get back in my terminal
Error in packet
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: iso.2.3.4.5.6.7.8.9
however if I run the command:
snmpget -v1 -ccommString -Lo 172.16.x.x .1.2.3.4.5.6.7.8.9 2> foo
I get no response at the terminal but the file foo contains the same
error message that I got above. So I am getting the error message on
STDERR and not on STDOUT as I would expect.
Am I reading the man page wrong here? Additionally I have tried this
on both linux and windows systems and because of the situation I’m in
I would prefer to have the errors emitted on STDOUT rather than STDERR
because I do not want to use the shell to do the work with the usual
2>&1
Any help or suggestions greatly appreciated.
The following c code is part of the source of the snmpget utility (snmpget.c in net-snmp-5.4.2.1\apps).
As you can see messages are simply written to stderr.
You can have a custom snmpget utility: Download the source, replace stderr with stdout then recompile.