#!/usr/bin/env bash # powerwall - CLI commands to control VM guest power source /opt/idssys/defaults/colors.inc source /opt/idssys/defaults/default.inc source /opt/idssys/vpnmon/system.inc START(){ sudo mkdir -p /var/run/xl2tpd sudo touch /var/run/xl2tpd/l2tp-control sudo service strongswan restart sudo service xl2tpd restart sudo service ipsec restart sleep 8s sudo /usr/sbin/ipsec up L2TP-PSK sleep 8s sudo bash -c 'echo "c myVPN" > /var/run/xl2tpd/l2tp-control' if [ "${SYSTEM}" = "unifipoller" ]; then sleep 8 ip route add 10.6.10.0/24 via $(ip address show dev ppp0 | grep -Po '(?<=peer )(\b([0-9]{1,3}\.){3}[0-9]{1,3}\b)') dev ppp0 /usr/sbin/service unifi-poller start fi } STOP(){ if [ "${SYSTEM}" = "unifipoller" ]; then /usr/sbin/service unifi-poller stop fi sudo bash -c 'echo "d myVPN" > /var/run/xl2tpd/l2tp-control' /usr/sbin/ipsec down L2TP-PSK } CHECK(){ checked=false cc=0 until [ "${checked}" = "" ]; do OUT=$(ip link | grep "ppp0") #OUT=`ip a show $VPN_INTERFACE up` >/dev/null 2>&1 if [ ${#OUT} -ne 0 ]; then checked="" elif [ ${cc} -eq 10 ]; then STOP sleep 5s START fi ((cc=${cc}+1)) sleep 1s done } case ${1} in start) START;; stop) STOP;; check) CHECK;; esac exit 0