x86版openwrt并发拨号ppp插件以及拨号脚本.
本帖最后由 oceancn 于 2013-1-16 11:22 编辑
测试环境 虚拟机vm OpenWrt Backfire 10.03.1-rc5
下面是编译的418版的x86并发ppp插件以及脚本 脚本中 n为多拨数,ok为成功退出的数量,一般等于n 下面的sleep要看你那里的限制,一般30秒或更长.
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2008 OpenWrt.org
- START=99
- #number是重拔次数
- #n是几拔
- #ok是拔上几次后退出拔号
- number=10
- n=4
- ok=4
- start() {
- for q in $( seq 1 $number )
- do
- echo
- echo ___________________________________________________
- echo 开始第$q次拔号...........
- pkill -f pppd
- pkill -f syncpppinit
- #rm /var/state/network
- j=0
- sleep 30
- syncpppinit $n &
- sleep 1
- echo 正开始并发拔号中.............
- for i in $( seq 0 $(($n-1)))
- do
- if [ "$i" == "0" ] ;
- then
- interface=wan
- else
- interface=wan$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 $n mtu 1492 mru 1492 nic-$ifname nopersist usepeerdns nodefaultroute user $user password $pass ipparam $interface ifname pppoe-$interface &
- done
- echo 正在并发拔号中.............
- echo 等待20秒.............
- sleep 20
- for i in $( seq 0 $(($n-1)))
- do
- if [ "$i" == "0" ] ;
- then
- [ "$(uci -P /var/state -q get network.wan.up)" == "1" ] && let j=j+1
- else
- [ "$(uci -P /var/state -q get network.wan$i.up)" == "1" ] && let j=j+1
- fi
- done
- echo [$n]拔[$j]拔成功.....
- ! [ "$j" -ge "$ok" ] && echo 成功[$j]拔, 小于设定的[$ok]拔将重新拔号...
- [ "$j" -ge "$ok" ] && echo 成功[$j]拔, 大于或等于设定的[$ok]退出拔号...
- [ "$j" -ge "$ok" ] && pkill -f syncpppinit
- [ "$j" -ge "$ok" ] && exit
- done
- }
复制代码
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。