reconnect script

David Woodhouse dwmw2 at infradead.org
Sun May 29 04:59:08 EDT 2011


On Fri, 2011-05-27 at 15:25 -0500, Matthew Kitchin (public/usenet) wrote:
> 
> ping -c 4 10.85.0.1 2>/dev/null 1>/dev/nul
>        if [ $? -ne 0 ]; then
>           killall openconnect
>           echo passwd|openconnect https://myIP --no-cert-check --script 
> /etc/vpn-script --user=username --passwd-on-stdin
>        fi 

FWIW this is the script I use to keep openconnect up. It pauses between
reconnect attempts if it's failing to connect, and it aborts if it gets
a login failure...

OpenConnect itself should always exit when it's no longer working, as
long as DPD is running. And if for some reason it isn't requested by
your server, you can use the --force-dpd option to enable it anyway.

#!/bin/bash

VPNSERVER=x.x.x.x
read -p "Enter VPN password: " -s PASS

while true; do 
    route add default gw 90.155.92.193
    THEN=`date +%s`
	echo $PASS | openconnect -c /home/dwmw2/.cert/certificate.p12 --key-password-from-fsid $VPNSERVER -x foo.xml --script /etc/vpnc/vpnc-script --mtu 1266 -u david.woodhouse at intel.com --passwd-on-stdin
    if [ $? -eq 2 ]; then
	echo Exit code 2
	exit 1
    fi
    NOW=`date +%s`
    if [ $NOW -lt $(($THEN + 60)) ]; then
	echo Need to wait $(($THEN + 60 - $NOW)) seconds
	sleep $(($THEN + 60 - $NOW))
    fi
done

-- 
dwmw2




More information about the openconnect-devel mailing list