|
|
发表于 2004-2-4 20:10:00
|
显示全部楼层
如果你想在断线后自动重拨,你就需要在crontab中启动你的脚本,这个脚本需要定时去检测网络是否断开,如果断开,就重新拨号,我没有用过pppoe,但是我用这种方法来保持办事处和我们总部的vpn服务器连接。
以下是我写的代码,也许你可以参考:
/usr/sbin/pptp-vpn
- #!/bin/bash
- VPN_SERVER=218.xx.xx.xx
- DEFAULT_GATEWAY=210.xx.xx.xx
- PPP_INTERFACE=ppp0
- EXTERNAL_INTERFACE=eth0
- if ! ping -c 3 internal.linux.org > /dev/null 2>&1
- then
- /usr/sbin/poff vpn.linux.org > /dev/null 2>&1
- /usr/sbin/pon vpn.linux.org
- sleep 5
- PPP_IPADDRESS=`/sbin/ifconfig ${PPP_INTERFACE}| grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '
- {print $2;}'`
- /sbin/route del ${VPN_SERVER} gw ${DEFAULT_GATEWAY}
- /sbin/route add -host ${VPN_SERVER}/32 gw ${DEFAULT_GATEWAY} dev ${EXTERNAL_INTERFACE}
- /sbin/route add -net 192.xxx.0.0 netmask 0xffffff00 gw ${PPP_IPADDRESS} dev ${PPP_INTERFACE}
- fi
复制代码
crontab 内容,每三分钟运行一次
- # check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
- # for vixie cron
- # remember to give cron a sighup when updating this file
- #
- # $Header: /home/cvsroot/gentoo-x86/sys-apps/vcron/files/crontab,v 1.2 2002/04/27 21:46:45 bangert Exp $
- #
- #
- */15 * * * * root test -x /usr/sbin/run-crons && /usr/sbin/run-crons
- 01-60 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
- 0 0 * * * root rm -f /var/spool/cron/lastrun/cron.daily
- 0 0 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
- 0 0 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
- 01-60/3 * * * * root /usr/sbin/pptp-vpn
复制代码 |
|