1
Files
qnap-rc-scripts/snmp
2016-09-04 22:20:40 +03:00

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