Estou tentando usar este script para alteração de rotas e me da o seguinte erro bad interpreter: No such file or directory
eis o script
#!/bin/bash
# author: Jesse Burkhardt
# date: 2002/07/09
# This shell script functions as a daemon to switch ip gateways
# when the primary one loses connectivity. The failover is initiated
# when by means of dead gateway detection (DTD) kludge - not kernel
# based. Once the dead gateway is redetected as being alive primary
# gateway (GW) will be restored.
# Installation: This script should be invoked from the local startup
# script, /etc/rc.local. Appended to this script should be the line:
# ´/root/scripts/gw_failover.sh &´, insuring that this will start on
# boot.
# N.B. - Important testing note: Unplugging the eth0 cable is only a
# partial test, simulating the ISP being down. Turning off the router
# simulates both the router and the ISP being down.
# Testing note: GW_1 is a router LAN interface; when it cannot be
# reached the router is down. NEXTHOP_1 is the first IP reached at
# ISP; when it cannot be reached the ISP is down. (Get the NEXTHOP
# value by doing a traceroute to the router´s gateway interface
# originating the trace from a connection other than the ISP´s.)
# Logic matrix:
# +---------+-----------+-----------+----------------+
# ! current ! GW_1/NH_1 ! GW_2/NH_2 ! Action !
# +---------+-----------+-----------+----------------+
# 1 ! GW_1 ! up ! up ! nothing !
# +---------+-----------+-----------+----------------+
# 2 ! GW_1 ! down ! down ! nothing !
# +---------+-----------+-----------+----------------+
# 3 ! GW_1 ! down ! up ! switch to GW_2 !
# +---------+-----------+-----------+----------------+
# 4 ! GW_2 ! up ! up ! switch to GW_1 !
# +---------+-----------+-----------+----------------+
# 5 ! GW_2 ! down ! down ! nothing !
# +---------+-----------+-----------+----------------+
# 6 ! GW_2 ! down ! up ! switch to GW_1 !
# +---------+-----------+-----------+----------------+
# * GW_1/NH_1 ´up´ means that BOTH IPs are reachable.
# GW_1/NH_1 ´down´ means that EITHER IP is unreachable.
# Set our IP numbers as variables to help generalize this script
# (GW is for GateWay and NH is for NextHop):
# ISP_1 (Sprint):
GW_1=192.168.0.1
NH_1=192.168.0.2
DEV_1=eth1
# ISP_2 (Galaxy):
GW_2=192.168.1.1
NH_2=192.168.1.2
DEV_2=eth2
# log strings:
LOG_STR_1=´gw_failover: Switching default GW to 192.168.1.1 - ifdown eth1´
LOG_STR_2=´gw_failover: Switching default GW to 192.168.0.1 - ifup eth1´
# mail strings:
MAIL_TO=´[email protected] [email protected]´
MAIL_SUBJECT_1=´Sprint 192.168.0.1/0 is down´
MAIL_SUBJECT_2=´Sprint 192.168.0.0/0 is back up´
MAIL_BODY_1=$LOG_STR_1
MAIL_BODY_2=$LOG_STR_2
# Need to initialize all interfaces and default GW if not already
# done. This is to force a GW failure if necessary to fall into the
# interface failover logic in the while loop.
service network restart
while [ 1 = 1 ]; do
# Collect all matrix values.
ping -c 1 $GW_1 | grep "100% packet loss"
GW_PINGERROR_1=$?
echo GW_PINGERROR_1 = $GW_PINGERROR_1
ping -c 1 $NH_1 | grep "100% packet loss"
NH_PINGERROR_1=$?
echo NH_PINGERROR_1 = $NH_PINGERROR_1
if [ $GW_PINGERROR_1 || $NH_PINGERROR_1 ];
then
PINGERROR_1 = 0
else
PINGERROR_1 = 1
fi
echo PINGERROR_1 = $PINGERROR_1
ping -c 1 $GW_2 | grep "100% packet loss"
GW_PINGERROR_2=$?
echo GW_PINGERROR_2 = $GW_PINGERROR_2
ping -c 1 $NH_2 | grep "100% packet loss"
NH_PINGERROR_2=$?
echo NH_PINGERROR_2 = $NH_PINGERROR_2
if [ $GW_PINGERROR_2 || $NH_PINGERROR_2 ];
then
PINGERROR_2 = 0
else
PINGERROR_2 = 1
fi
echo PINGERROR_2 = $PINGERROR_2
# Read as: "If both ISPs are not up or both ISPs are not both down ...
# then look at switching GWs"
if ! [ [ $PINGERROR_1 && $PINGERROR_2 ] || [ ! $PINGERROR_1 && ! $PINGERROR_2 ] ];
then
echo --> Primary ISP failure condition
ip route list dev $DEV_2 | grep "default via $GW_2"
GW_STATUS_2=$?
echo
echo GW_STATUS_2 = $GW_STATUS_2
echo
# Don´t change GW if it already has been.
if [ $GW_STATUS_2 != 0 ];
then
echo $MAIL_BODY_1 | mail -s $MAIL_SUBJECT_1 $MAIL_TO
echo
echo `date`: $LOG_STR_1 >> /var/log/messages
ip route replace default nexthop via $GW_2 dev $DEV_2
ifdown $DEV_1
fi
else
ip route list dev eth0 | grep "default via $GW_1"
GW_STATUS_2=$?
echo
echo GW_STATUS_2 = $GW_STATUS_2
# Don´t change GW if it already has been.
if [ $GW_STATUS_2 != 0 ];
then
echo $MAIL_BODY_2 | mail -s $MAIL_SUBJECT_2 $MAIL_TO
echo
echo `date`: $LOG_STR_2 >> /var/log/messages
ifup $DEV_1
ip route replace default nexthop via $GW_1 dev $DEV_1
fi
fi
sleep 5
done