Для этого мне надо воспользоваться командой: > snmpwalk -v2c -c public localhost 1.3.6.1.4.1.2021.8.1.101
Т.е. SNMP, как я понимаю, связывает MIB с конкретной командой.
Возможно ли точно также вызвать скрипт, но при этом передать ему параметр, не задавая его в snmpd.conf, т.е. не создавая для каждого варианта с ключем свой MIB?
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Для этого мне надо воспользоваться командой: > snmpwalk -v2c -c public localhost 1.3.6.1.4.1.2021.8.1.101
Т.е. SNMP, как я понимаю, связывает MIB с конкретной командой.
Возможно ли точно также вызвать скрипт, но при этом передать ему параметр, не задавая его в snmpd.conf, т.е. не создавая для каждого варианта с ключем свой MIB?
snmpd передаёт же весь mib скрипту и его параметры.
На счет snmpwalk не скажу, а через snmpset (может и через snmpget?.. не проверял) можно передавать <тип> <значение>. Тип может быть как строкой, так и целым.
#!/bin/bash
oid=$2
# param1
if $(echo $oid | grep -q "^\.1\.3\.6\.1\.4\.2\.1\.3\.21\.[0-9]*")
then
if [ "$1" = "-s" ] && [ "$3" = "integer" ]
then
# OID parse
ID=$(echo $oid | /usr/bin/cut -d . -f 11)
if [ "$4" = "0" ]; then
.....
if [ "$4" = "1" ]; then
....
fi
if [ "$4" = "2" ]; then
....
fi
if [ "$4" = "3" ]; then
....
fi
fi
fi
# param 2
if $(echo $oid | grep -q "^\.1\.3\.6\.1\.4\.2\.1\.21\.2\.[0-9]*")
then
....
fi
# param 3
if $(echo $oid | grep -q "^\.1\.3\.6\.1\.4\.2\.1\.21\.1\.[0-9]*\.[0-9]*")
then
if [ "$1" = "-s" ] && [ "$3" = "integer" ]
then
# OID parse
ID=$4
.....
fi
exit 0
fi
# param 4
if $(echo $oid | grep -q "^\.1\.3\.6\.1\.4\.2\.1\.21\.3\.[0-9]*\.[0-9]*")
then
if [ "$1" = "-s" ] && [ "$3" = "integer" ]
then
# OID parse
....
fi
exit 0
fi
# param 5
if $(echo $oid | grep -q "^\.1\.3\.6\.1\.4\.2\.1\.21\.4\.[0-9]*")
then
if [ "$1" = "-s" ] && [ "$3" = "integer" ]
then
# OID parse
ID=$(echo $oid | /usr/bin/cut -d . -f 11)
if [ "$4" = 0 ]; then
....
else
....
fi
fi
exit 0
fi
# param 6
if $(echo $oid | grep -q "^\.1\.3\.6\.1\.4\.2\.1\.21\.5\.[0-9]*")
then
if [ "$1" = "-s" ] && [ "$3" = "integer" ]
then
# OID parse
ID=$(echo $oid | /usr/bin/cut -d . -f 11 )
if [ "$4" = 0 ]; then
....
else
....
fi
fi
exit 0
fi
Спасибо за ответ.
Я не совсем понял код скрипта (для каждого ключа, создается новый MIB?). Да, мне, в принципе, все равно как вызвать скрипт, т.е. получить от него ответ - я могу воспользоваться и snmpset и чем-то еще, работающим через SNMP.
Можете показать пример. В данном случае в /etc/snmp/snmpd.conf у нас uname. Как получить ответ от uname -a?
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)