/root/pppoe-my start
#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org
START=99
#number是重拔次数
#n是几拔
#ok是拔上几次后退出拔号
number=10
n=10
ok=4
start() {
for q in $( seq 1 $number )
do
echo
echo ___________________________________________________
echo 开始第$q次拔号...........
#取得wan口的账号和密码,用来多拨
user=`uci get network.wan.username`
pass=`uci get network.wan.password`
killall -q -SIG pppd
killall -q -SIG syncpppinit
sleep 100
syncpppinit $n &
sleep 1
echo 正开始并发拔号中.............
for i in $( seq 0 $(($n-1)))
do
if [ "$i" == "0" ] ;
then
interface=wan
#db120为eth,hg255d可能为eth0.2或eth2.2,在下方对应修改
ifname=eth0
else
interface=wan$i
ifname=vth$i
fi
#ifname=`uci get network.$interface.ifname`
#user=`uci get network.$interface.username`
#pass=`uci get network.$interface.password`
#echo pppoe账号:[$user] pppoe密码:[$pass] pppoe接口:[$ifname]
/usr/sbin/pppd plugin rp-pppoe.so syncppp mtu 1492 mru 1492 nic-$ifname nopersist usepeerdns nodefaultroute user $user password $pass ipparam $interface ifname pppoe-$interface nodetach &
done
echo 正在并发拔号中.............
echo 等待20秒.............
sleep 10
j=`ifconfig|grep -c inet.*P-t-P`
echo [$n]拔[$j]拔成功.....
! [ "$j" -ge "$ok" ] && echo 成功[$j]拔, 小于设定的[$ok]拔将重新拔号...
[ "$j" -ge "$ok" ] && echo 成功[$j]拔, 大于或等于设定的[$ok]退出拔号...
[ "$j" -ge "$ok" ] && killall -q -SIG syncpppinit
[ "$j" -ge "$ok" ] && sleep 300
[ "$j" -ge "$ok" ] && kill `pidof pppd | awk '{print $1}'`
[ "$j" -ge "$ok" ] && exit
done
}
#!/bin/sh /etc/rc.common
state=`ps|grep -c pppoe-my`
[ "$state" -ge "2" ] && exit
n_connected=`ifconfig|grep -c inet.*P-t-P`
! [ "$n_connected" -ge "1" ] && /root/pppoe-my start
联系客服