Update vpnmon.sh

This commit is contained in:
2022-05-22 12:12:51 -05:00
parent 192346fdec
commit 0cc03a290b

View File

@@ -5,7 +5,8 @@ source /opt/idssys/defaults/colors.inc
source /opt/idssys/defaults/default.inc source /opt/idssys/defaults/default.inc
source /opt/idssys/vpnmon/system.inc source /opt/idssys/vpnmon/system.inc
logfile=/opt/idssys/vpnmon/logfile
touch $logfile
START(){ START(){
@@ -28,9 +29,15 @@ START(){
/usr/sbin/service unifi-poller start /usr/sbin/service unifi-poller start
fi fi
rm -f /opt/idssys/vpnmon/vpn.stop
echo "$(date) - VPN started" >> $logfile
} }
STOP(){ STOP(){
touch /opt/idssys/vpnmon/vpn.stop
if [ "${SYSTEM}" = "unifipoller" ]; then if [ "${SYSTEM}" = "unifipoller" ]; then
/usr/sbin/service unifi-poller stop /usr/sbin/service unifi-poller stop
fi fi
@@ -38,24 +45,55 @@ STOP(){
sudo bash -c 'echo "d myVPN" > /var/run/xl2tpd/l2tp-control' sudo bash -c 'echo "d myVPN" > /var/run/xl2tpd/l2tp-control'
/usr/sbin/ipsec down L2TP-PSK /usr/sbin/ipsec down L2TP-PSK
echo "$(date) - VPN stopped" >> $logfile
} }
CHECK(){ CHECK(){
checked=false if [ ! -f /opt/idssys/vpnmon/vpn.stop ]; then
cc=0
until [ "${checked}" = "" ]; do touch /opt/idssys/vpnmon/vpn.stop
OUT=$(ip link | grep "ppp0")
#OUT=`ip a show $VPN_INTERFACE up` >/dev/null 2>&1 checked=false
if [ ${#OUT} -ne 0 ]; then cc=0
checked="" until [ "${checked}" = "" ]; do
elif [ ${cc} -eq 10 ]; then OUT=$(ip link | grep "ppp0")
STOP #OUT=`ip a show $VPN_INTERFACE up` >/dev/null 2>&1
sleep 5s if [ ${#OUT} -ne 0 ]; then
START checked=""
fi elif [ ${cc} -eq 10 ]; then
((cc=${cc}+1)) if [ -f /opt/idssys/vpnmon/vpn.fail ]; then
sleep 1s echo "$(date) - VPN Failure #2 - stopping for 5mins" >> $logfile
done touch /opt/idssys/vpnmon/vpn.fail2
rm -f /opt/idssys/vpnmon/vpn.fail
STOP
sleep 5m
START
exit 1
elif [ -f /opt/idssys/vpnmon/vpn.fail2 ]; then
echo "$(date) - VPN Failure #3 - Shutting down VPN system until repaired" >> $logfile
STOP
exit 1
else
echo "$(date) - VPN Failure #1 - stopping for 1min" >> $logfile
touch /opt/idssys/vpnmon/vpn.fail
STOP
sleep 1m
START
exit 1
fi
fi
((cc=${cc}+1))
sleep 1s
done
rm -f /opt/idssys/vpnmon/vpn.stop
else
echo "VPN system is stopped and must be restarted manually"
fi
} }