打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
x86版openwrt并发拨号ppp插件以及拨号脚本.
 本帖最后由 oceancn 于 2013-1-16 11:22 编辑

测试环境 虚拟机vm OpenWrt Backfire 10.03.1-rc5
下面是编译的418版的x86并发ppp插件以及脚本 脚本中 n为多拨数,ok为成功退出的数量,一般等于n 下面的sleep要看你那里的限制,一般30秒或更长.
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2008 OpenWrt.org
  3. START=99

  4. #number是重拔次数
  5. #n是几拔
  6. #ok是拔上几次后退出拔号

  7. number=10
  8. n=4
  9. ok=4

  10. start() {
  11.    for q in $( seq 1 $number )
  12.    do        
  13.         echo
  14.         echo ___________________________________________________
  15.         echo 开始第$q次拔号...........
  16.         pkill -f pppd
  17.         pkill -f syncpppinit
  18.         #rm /var/state/network
  19.         j=0
  20.         sleep 30
  21.         syncpppinit $n &
  22.         sleep 1
  23.         echo 正开始并发拔号中.............

  24.         for i in $( seq 0 $(($n-1)))
  25.         do
  26.           if [ "$i" == "0"  ] ;
  27.           then
  28.                interface=wan
  29.           else
  30.                interface=wan$i
  31.           fi
  32.            ifname=`uci get network.$interface.ifname`
  33.            user=`uci get network.$interface.username`
  34.            pass=`uci get network.$interface.password`
  35.            echo pppoe账号:[$user]                pppoe密码:[$pass]        pppoe接口:[$ifname]
  36.            /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 &
  37.         done

  38.         echo 正在并发拔号中.............
  39.         echo 等待20秒.............
  40.         sleep 20

  41.         for i in $( seq 0 $(($n-1)))
  42.         do
  43.           if [ "$i" == "0"  ] ;
  44.           then
  45.             [ "$(uci -P /var/state -q get network.wan.up)" == "1" ] && let j=j+1
  46.           else
  47.                    [ "$(uci -P /var/state -q get network.wan$i.up)" == "1" ] && let j=j+1
  48.           fi
  49.         done
  50.         echo [$n]拔[$j]拔成功.....

  51.         ! [ "$j" -ge "$ok" ] && echo 成功[$j]拔, 小于设定的[$ok]拔将重新拔号...
  52.         [ "$j" -ge "$ok" ] && echo 成功[$j]拔, 大于或等于设定的[$ok]退出拔号...
  53.         [ "$j" -ge "$ok" ] && pkill -f syncpppinit   
  54.         [ "$j" -ge "$ok" ] && exit
  55.     done
  56. }
复制代码
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【20140113更新】修改pppd的并发多拨,重新编译
openwrt的默认/etc/config/network文件是如何生成的?
开发OpenWrt路由器上LuCI的模块
Openwrt路由单wan多拨宽带叠加教程
开发笔记| [转载]OpenWrt常用命令 – initphp的代码世界,专注PHP,Java!脚踏实地,一步一个脚印 – 博客频道 – CSDN.NET | Mikel
【原创】双adsl链路冗余互备及流量分担的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服