#!/bin/sh prog=`basename $0` [ "$2" ] || { cat >&2 <&2 exit 2 } downTime=`expr $interval - $upTime` echo "call $iface every $interval minutes for $upTime minutes" [ "$*" ] && echo "run \"$@\" at the start of each call" hangup $iface while :; do while :; do call $iface retCode=$? [ $retCode = 0 ] && break [ $retCode -ge 128 ] && exit $retCode echo "`date` -- call $iface failed, retrying after 20 seconds..." sleep 20 done echo "`date` -- $iface link is up for the next $upTime minutes" "$@" & sleep ${upTime}m hangup $iface echo "`date` -- $iface link will remain down for the next $downTime minutes" sleep ${downTime}m done