137 lines
2.4 KiB
Bash
Executable File
137 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
export PATH=/home/bin:/home/scripts:/opt/bin:/bin:/sbin:/usr/bin:/usr/sbin
|
|
#export LD_LIBRARY_PATH=/lib/public:/lib/private:/usr/lib:/lib:/usr/lib/ebtables:/usr/lib/iptables
|
|
|
|
SUPPORT_LIB64=`ls / | grep lib64`
|
|
if [ "$SUPPORT_LIB64" == "lib64" ] ;then
|
|
export LD_LIBRARY_PATH=/lib/public:/lib/private:/usr/lib:/lib:/lib64/gpl:/lib64:/usr/lib/ebtables:/usr/lib/iptables
|
|
else
|
|
export LD_LIBRARY_PATH=/lib/public:/lib/private:/usr/lib:/lib:/usr/lib/ebtables:/usr/lib/iptables
|
|
fi
|
|
|
|
EXEC_NAME=dnsmasq
|
|
EXEC_PATH=/usr/sbin
|
|
EXEC_CONF=/etc/dnsmasq.conf
|
|
USER=root
|
|
DNSMASQ_LOG_CONF=/var/dnsmasq/conf.d/logquit.conf
|
|
DNSMASQ_LOG_CONF_BACK=/var/dnsmasq/conf.d/logquit.conf_back
|
|
|
|
logchk()
|
|
{
|
|
local re_start=0
|
|
if [ ! -f $DNSMASQ_LOG_CONF ]; then
|
|
echo "quiet-dhcp" > $DNSMASQ_LOG_CONF
|
|
echo "quiet-dhcp6" >> $DNSMASQ_LOG_CONF
|
|
echo "quiet-ra" >> $DNSMASQ_LOG_CONF
|
|
re_start=1
|
|
fi
|
|
|
|
cp $DNSMASQ_LOG_CONF $DNSMASQ_LOG_CONF_BACK
|
|
local str=""
|
|
for i in $@
|
|
do
|
|
if [ -z ${i##*dhcp-log*} ]; then
|
|
str='quiet-dhcp'
|
|
elif [ -z ${i##*dhcp6-log*} ]; then
|
|
str='quiet-dhcp6'
|
|
elif [ -z ${i##*ra-log*} ]; then
|
|
str='quiet-ra'
|
|
else
|
|
str=''
|
|
fi
|
|
|
|
if [ ! -z $str ]; then
|
|
local replace=$str
|
|
if [ -z ${i##enable*} ]; then
|
|
replace='#'$replace
|
|
fi
|
|
local chk=`cat $DNSMASQ_LOG_CONF | grep "^#*\s*$str\s*$"`
|
|
if [ ! -z $chk ]; then
|
|
sed -i "s/^#*[ tab]*$str[ tab]*$/$replace/g" $DNSMASQ_LOG_CONF
|
|
else
|
|
echo "$replace" >> $DNSMASQ_LOG_CONF
|
|
fi
|
|
fi
|
|
done
|
|
|
|
local orig_size=`ls -al $DNSMASQ_LOG_CONF_BACK | awk '{print $5}'`
|
|
local res_size=`ls -al $DNSMASQ_LOG_CONF | awk '{print $5}'`
|
|
|
|
if [ $orig_size -ne $res_size ]; then
|
|
re_start=1
|
|
fi
|
|
rm $DNSMASQ_LOG_CONF_BACK
|
|
|
|
echo $re_start
|
|
}
|
|
|
|
reload()
|
|
{
|
|
PID=$(pgrep dnsmasq)
|
|
if [ "$PID" == "" ] ; then
|
|
echo 'dnsmasq not running'
|
|
else
|
|
kill -HUP "$PID"
|
|
fi
|
|
}
|
|
|
|
start()
|
|
{
|
|
/bin/mkdir -p /var/dnsmasq/
|
|
/bin/mkdir -p /var/dnsmasq/conf.d
|
|
ln -sf $EXEC_CONF /var/dnsmasq/dnsmasq.conf
|
|
|
|
local re=$(logchk)
|
|
|
|
$EXEC_PATH/$EXEC_NAME -u $USER -q --conf-file=$EXEC_CONF
|
|
}
|
|
|
|
stop()
|
|
{
|
|
killall -9 $EXEC_NAME
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
start)
|
|
PID=$(pgrep dnsmasq)
|
|
if [ "$PID" == "" ] ; then
|
|
start
|
|
else
|
|
echo 'dnsmasq is already running !!!'
|
|
fi
|
|
exit 0
|
|
;;
|
|
|
|
stop)
|
|
stop
|
|
exit 0
|
|
;;
|
|
|
|
restart)
|
|
stop
|
|
start
|
|
exit 0
|
|
;;
|
|
|
|
reload)
|
|
reload
|
|
exit 0
|
|
;;
|
|
|
|
log)
|
|
re=$(logchk $@)
|
|
if [ $re -eq 1 ]; then
|
|
stop
|
|
start
|
|
fi
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "$0: unrecognized option $1"
|
|
exit 1
|
|
;;
|
|
|
|
esac
|