Files
2020-03-05 00:08:40 +08:00

128 lines
3.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
source /etc/mixbox/bin/base
eval `mbdb export pptpd`
source "$(mbdb get mixbox.main.path)"/apps/entware/scripts/functions.sh
port=1723
open_ports () {
iptables -I FORWARD -i ppp+ -j ACCEPT -m comment --comment "mixbox-${appname}" &> /dev/null
open_port
}
add(){
[ -z "$1" -o -z "$2" ] && exit 1
sed -i "/^$1/"d /etc/ppp/chap-secrets
echo "$1 pptpd $2 * #tools" >> /etc/ppp/chap-secrets
}
del(){
[ -z "$1" ] && exit 1
sed -i "/^$1/{/tools$/d}" /etc/ppp/chap-secrets
cat /tmp/pptp_connected | grep $1 | awk -F " " '{print $7}' | xargs kill -9
sed -i "/$1/"d /tmp/pptp_connected
}
detect_entware() {
result1=$(mbdb show entware)
result2=$(ls /opt | grep etc)
if [ -z "$result1" ] || [ -z "$result2" ]; then
logsh "$service" "检测到【Entware】服务未启动或未安装"
end
else
result3=$(echo $PATH | grep opt)
[ -z "$result3" ] && export PATH=/opt/bin:/opt/sbin:$PATH
fi
}
install_entware_app() {
for i in $@; do
result=$(/opt/bin/opkg list-installed | grep -c "^$i")
if [ "$result" == '0' ]; then
/opt/bin/opkg install $i
[ $? -ne 0 ] && logsh "$service" "程序$i安装失败" && exit 1
fi
done
}
start() {
[ -n "$(pidof ${appname})" ] && logsh "$service" "${appname}已经在运行!" && exit 1
logsh "$service" "正在启动${appname}服务... "
# cru a "${appname}" "0 6 * * * ${mbroot}/apps/${appname}/scripts/${appname}.sh restart"
# Scripts Here
# 检查entware
detect_entware
install_entware_app ${appname}
cp -rf ${mbroot}/apps/${appname}/config/pptpd.conf /tmp/pptpd.conf
cp -rf ${mbroot}/apps/${appname}/config/options.pptpd /tmp/options.pptpd
echo "localip "$localip >> /tmp/pptpd.conf
network=$(echo $localip | awk -F "." '{print $1"."$2"."$3"."}')
echo "remoteip " $network$ip_min"-"$ip_max >> /tmp/pptpd.conf
echo "ms-dns "$dns1 >> /tmp/options.pptpd
echo "ms-dns "$dns2 >> /tmp/options.pptpd
echo "ms-wins "$lanip >> /tmp/options.pptpd
auto_start_enable ${appname}
open_ports
write_firewall_start
daemon /opt/sbin/pptpd -c /tmp/pptpd.conf -o /tmp/options.pptpd
if [ $? -ne 0 ]; then
logsh "$service" "启动${appname}服务失败!" && end
else
logsh "$service" "启动${appname}服务完成!"
fi
}
stop() {
logsh "$service" "正在停止${appname}服务... "
[ "$enable" == '0' ] && destroy
close_port
remove_firewall_start
rm -rf {${mbtmp}}/*pptp*
killall -9 ${appname} &> /dev/null
# ps |grep pptpd | grep -v grep | grep -v {pptpd} | grep -v restart | awk '{print $1}' | xargs kill -9
}
destroy() {
auto_start_disable ${appname}
# End app, Scripts here
# cru d "${appname}"
return
}
end() {
mbdb set $appname.main.enable=0
stop && exit 1
}
status() {
if [ -n "$(pidof ${appname})" ]; then
status="运行中|1"
else
status="未运行|0"
fi
mbdb set ${appname}.main.status="$status"
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; start ;;
reload) close_port && open_ports ;;
status) status ;;
add) add "$2" "$3" ;;
del) del "$2" ;;
esac