Причина: здешнему народу интересно все
рассказывайте, всем может пригодиться
Ок
Добавляем OID's в snmpd из optware
1) Добавляем в /opt/etc/snmp/snmpd.conf строки
Code:
exec temp1 /opt/bin/temp1
exec temp2 /opt/bin/temp2
Здесь:
exec - опция, для snmpd, выполнения скрипта, на выходе которого будет значение выводимое через OID
temp1 - определение выполнения(может быть любым)
/opt/bin/temp1 - выполняемый скрипт при запросе через snmp
2) cat /opt/bin/temp1
Code:
#!/opt/bin/bash
TEMPETH1=`wl -i eth1 phy_tempsense|awk '{print $1}'`
echo $TEMPETH1*0.5+20|bc
3) По подобию /opt/bin/temp1 пишем скрипт /opt/bin/temp2, но меняем в нем eth1 на eth2
4) Перезапускаем snmpd:
/opt/etc/init.d/S70snmpd restart
Кстати, при установке snmpd, скрипт запуска не создается. Мой вариант S70snmpd:
Code:
#!/bin/sh
#
# $Header$
#
if [ -n "`pidof snmpd`" ] ; then
killall snmpd 2>/dev/null
fi
sleep 2
/opt/sbin/snmpd -c /opt/etc/snmp/snmpd.conf
5) С машины которая будет запрашивать OID'ы просим дать ветку:
Code:
snmpwalk -v 2c -c comm 192.168.1.1 .1.3.6.1.4.1.2021
...
iso.3.6.1.4.1.2021.8.1.2.1 = STRING: "temp1"
iso.3.6.1.4.1.2021.8.1.2.2 = STRING: "temp2"
iso.3.6.1.4.1.2021.8.1.3.1 = STRING: "/opt/bin/temp1"
iso.3.6.1.4.1.2021.8.1.3.2 = STRING: "/opt/bin/temp2"
iso.3.6.1.4.1.2021.8.1.100.1 = INTEGER: 0
iso.3.6.1.4.1.2021.8.1.100.2 = INTEGER: 0
iso.3.6.1.4.1.2021.8.1.101.1 = STRING: "58.5"
iso.3.6.1.4.1.2021.8.1.101.2 = STRING: "61.0"
iso.3.6.1.4.1.2021.8.1.102.1 = INTEGER: 0
iso.3.6.1.4.1.2021.8.1.102.2 = INTEGER: 0
iso.3.6.1.4.1.2021.8.1.103.1 = ""
iso.3.6.1.4.1.2021.8.1.103.2 = ""
...
6) Формируем итоговый запрос
Для eth1 snmpget -Osv -v 2c -c comm 192.168.1.1 .1.3.6.1.4.1.2021.8.1.101.1
Для eth2 snmpget -Osv -v 2c -c comm 192.168.1.1 .1.3.6.1.4.1.2021.8.1.101.2
PS: Кстати, хоть в прошивке от энтузиастов опций для snmp "кот наплакал", можно добавлять свои опции для искаробочного snmpd. Например echo "proc mjpg_streamer 1 1" >> /tmp/snmpd.conf . Для применения даем команду kill -HUP `ps | grep snmpd | awk '{print $1}'`