47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# check if cron is still running; if it is, then just exit; otherwise execute cron job
|
|
#[[ -f /tmp/*.vpncron ]] && exit 1
|
|
|
|
# create a temp file with suffix
|
|
TEMP_FILE=`mktemp --suffix .vpncron`
|
|
touch $TEMP_FILE
|
|
|
|
EXTIF="ppp0" # external interface, may be empty
|
|
IFCONFIG=/sbin/ifconfig
|
|
AWK=/bin/awk
|
|
|
|
HOSTS="sg3.gazduire.ro vg11.gazduire.ro rg5.gazduire.ro dbv5.gazduire.ro"
|
|
# no ping request
|
|
COUNT=1
|
|
|
|
for server in $HOSTS
|
|
do
|
|
count=$(ping -c $COUNT $server | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
|
|
if [ $count -eq 0 ]; then
|
|
# 100% failed
|
|
echo "Host : $server is down (ping failed) at $(date)"
|
|
/etc/init.d/vpn-gzd stop
|
|
sleep 1
|
|
/etc/init.d/vpn-gzd start
|
|
fi
|
|
done
|
|
|
|
# get the external IP address - it returns empty string if it is not up
|
|
if [ -n "$EXTIF" ]; then
|
|
EXTIP=`$IFCONFIG | grep inet | grep -v 127.0.0.1 | grep -v 10.208 | grep -v inet6 | $AWK '{print $2}'`
|
|
fi
|
|
#echo " External IP: $EXTIP"
|
|
|
|
if [ -z "$EXTIP" ]; then
|
|
echo "Starting VPN tunnel.."
|
|
/etc/init.d/vpn-gzd stop
|
|
sleep 1
|
|
/etc/init.d/vpn-gzd start
|
|
else
|
|
echo "VPN tunnel is connected"
|
|
fi
|
|
|
|
# delete cron temporary file
|
|
rm -f $TEMP_FILE
|