#!/bin/sh # # description: Starts and stops the snmp agent deamon # SNMPD=/usr/local/bin/snmpd SYSCONF=/etc/config/uLinux.conf ETCCONF=/etc/config/snmpd.conf VARCONF=/var/ucd-snmp/snmpd.conf TMPVARCONF=/etc/config/snmpd.var.conf NEW_CONF=/tmp/new_snmpd_conf.flag RETVAL=0 reset_snmp_conf_file() { SNMPV=`/sbin/getcfg SNMP "Version" -d 1` if [ $"SNMPV" = "1" ]; then COMM=`/sbin/getcfg SNMP "Trap Community" -d public` else ENGINE_ID=`/sbin/getcfg SNMP "Engine ID" -d ""` USER=`/sbin/getcfg SNMP "User" -d ""` I_AUTH_PROTOCOL=`/sbin/getcfg SNMP "Auth Protocol" -d 0` AUTH_KEY=`/sbin/getcfg SNMP "Auth Key" -d ""` I_PRIV_PROTOCOL=`/sbin/getcfg SNMP "Priv Protocol" -d 0` PRIV_KEY=`/sbin/getcfg SNMP "Priv Key" -d ""` AUTH_PROTOCOL=MD5 if [ $I_AUTH_PROTOCOL = 1 ]; then AUTH_PROTOCOL=SHA fi PRIV_PROTOCOL=DES # if [ $I_PRIV_PROTOCOL = 1 ]; then # PRIV_PROTOCOL=AES # fi cp $TMPVARCONF ${TMPVARCONF}.bak AUTH_TYPE=`/sbin/getcfg SNMP "Auth Type" -d 0` if [ "x$ENGINE_ID" = "x" ]; then ENGINE_CMD="" else ENGINE_CMD="-e $ENGINE_ID" fi case "$AUTH_TYPE" in "0") echo createUser $ENGINE_CMD \"$USER\" > $TMPVARCONF ;; "1") echo createUser $ENGINE_CMD \"$USER\" $AUTH_PROTOCOL \"$AUTH_KEY\" > $TMPVARCONF ;; "2") echo createUser $ENGINE_CMD \"$USER\" $AUTH_PROTOCOL \"$AUTH_KEY\" $PRIV_PROTOCOL \"$PRIV_KEY\" > $TMPVARCONF ;; esac fi } start() { ENABLE=`/sbin/getcfg SNMP "Service Enable" -d FALSE -u -f $SYSCONF` if [ "x${ENABLE}" == "xTRUE" ] ; then /bin/echo "Starting snmp agent:" mkdir -p /var/ucd-snmp # /bin/echo "****** /etc/config/snmpd.conf" > /tmp/snmp.log # /bin/cat /etc/config/snmpd.conf >> /tmp/snmp.log # /bin/echo "****** /etc/config/snmpd.var.conf" >> /tmp/snmp.log # /bin/cat /etc/config/snmpd.var.conf >> /tmp/snmp.log # if [ -f $VARCONF ]; then # /bin/echo "****** $VARCONF" >> /tmp/snmp.log # /bin/cat $VARCONF >> /tmp/snmp.log # fi if [ -f $NEW_CONF ] || [ ! -f $VARCONF ]; then # /bin/echo "Copy /etc/config/snmpd.var.conf" >> /tmp/snmp.log cp /etc/config/snmpd.var.conf $VARCONF fi PORT_NO=`/sbin/getcfg SNMP "Listen Port" -d 161` $SNMPD -c /etc/config/snmpd.conf -p ${PORT_NO} RETVAL=$? [ -f $NEW_CONF ] && rm $NEW_CONF /bin/sleep 1 cp $VARCONF /etc/config/snmpd.var.conf # /bin/echo "****** /etc/config/snmpd.var.conf" >> /tmp/snmp.log # /bin/cat /etc/config/snmpd.var.conf >> /tmp/snmp.log fi } stop() { /bin/echo "Stopping snmp agent: " killall snmpd RETVAL=$? } restart() { stop sleep 1 start } ##[ -f $SNMPD ] || exit 0 case "$1" in start) start ;; stop) stop ;; restart) stop start ;; esac exit $RETVAL