#! /bin/bash # Author: deelkar@gmx.de # # Script: /usr/local/bin/connectiontest # # Version: 7.3.1 # # Requires: +online--7.3.3+, +reconnect--7.3.1+, +dual--7.3.1+, +single--7.3.1+, bash # # Public: yes # Copyright (C) 2002 "Dirk-Lueder Kreie" # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the # # Free Software Foundation, Inc. # 59 Temple Place, Suite 330 # Boston, MA 02111-1307 # USA. # exit 0 lckfile="/var/sysflags/connectiontest" trap "rm $lckfile; exit" SIGHUP SIGINT SIGTERM if [ "`find $lckfile -cmin +15 2>&1`" = "$lckfile" ]; then test -e $lckfile && rm $lckfile echo `date`" - Warning: old lockfile \"$lckfile\" exists" fi if [ -e $lckfile ]; then echo `date`" - Fatal: lockfile \"$lckfile\" exists" exit 1 fi touch $lckfile chmod 666 $lckfile # find out external interface from routing table EXT_IF=$(for I in $(/sbin/route -n|grep ^0.0.0.0); do echo $I; done | tail -n1) # check if ext if is ppp device, make sure ppp device is ppp0 and not ppp1 or other if echo $EXT_IF | grep -q ppp; then echo $EXT_IF | grep -q ppp0 || /etc/init.d/net.ppp0 restart fi # check if default servers from "online" script are reachable, else restart pppd #/usr/local/bin/online 4 20 || /etc/init.d/net.ppp0 restart # check if IPv6 is usable, or restart HE tunnel /usr/local/bin/online6 || /usr/local/bin/ipv6tunnel # check if MASQUERADING is on, else restart if /usr/local/bin/masquerade status 2>/dev/null | grep -q MASQUERADE 2>/dev/null; then true else echo "NAT is OFF" sleep 1 /usr/local/bin/masquerade restart fi rm $lckfile