我将乌班图服务器用作NAT路由器。 广域网接口为eth1
,局域网界面为0
。 我在局域网一侧使用木卡普虚拟管道进行故障处理。 如果广域网连接或缺省门缩小(如果局域网接口缩小,则ucarp可以将NAT网关排到网络的另一路由器),我将写下一个文字。 而且,如果广域网管道铺设,则应当建立局域网接口,直到广域网能够铺设为止。
Bash Script:
#!/bin/bash
t1=$(ifconfig | grep -o eth0)
t2="eth0"
#RMT_IP = "8.8.8.8"
SLEEP_TIME="10"
ping -c 2 8.8.8.8 > /dev/null
PING_1=$?
if [ $PING_1 = 1 ]; then
if [ "$t1" != "$t2" ]; then
ifconfig eth0 up
echo "Iface brought up"
else
echo "Iface is already up"
fi
else
if [ "$t1" = "$t2" ]; then
ifconfig eth0 down
echo "Iface brought down"
else
echo "iface already down"
fi
fi
sleep $SLEEP_TIME
文字对我不可行。 我想的是,如果能够打上广域网,那么局域网界面eth0
就应当保持顶。 如果广域网无法铺设,那么接口就应当缩小。 该书应每10秒钟使用。 如果广域网不能长时间铺设,那么eth0
就应当只剩下,如果广域网在一段时间后铺设,那么0
。 我也计划把script作为起步工作。
EDIT 1: My final script:
#!/bin/bash
timeout=5 # delay between checks
pingip= 8.8.8.8 # what to ping
iface="eth0"
LOG_FILE="/var/log/syslog"
isdown=0 # indicate whether the interface is up or down
# start assuming interface is up
while true; do
LOG_TIME=`date +%b %d %T`
if ping -q -c 2 "$pingip" >> /dev/null ; then # ping is good - bring iface up
if [ "$isdown" -ne 0 ] ; then
ifup $iface && isdown=0
printf "$LOG_TIME $0: Interface brought up: %s
" "$iface" | tee -a $LOG_FILE
fi
else # ping is bad - bring iface down
beep -f 4000
if [ "$isdown" -ne 1 ] ; then
ifdown $iface && isdown=1
printf "$LOG_TIME $0: Interface brought down: %s
" "$iface" | tee -a $LOG_FILE
fi
fi
sleep "$timeout"
done