115 lines
2.6 KiB
Bash
Executable File
115 lines
2.6 KiB
Bash
Executable File
#!/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
|