找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9751|回复: 5

[脚本] 网上找了一个pppoe防假死的脚本运行不了,请高手看看是哪里的问题

[复制链接]
发表于 2014-3-31 09:13:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
从百度文库找的,url:http://wenku.baidu.com/link?url= ... wD9e_a1dIxpLaB3hvaO
运行不了,请高手看看,给修复一下。

ros刷新PPPOE-Client,防假死,卡死,断线,自动重拨修复
代码如下:

local newaddress
local newnetwork
local assignip
local status
local pppoestatus
local pppoeup
local pppoeupcount
local pppoedown
local pppoedowncount
##################
local x 1                     
#---线路数请更改使用
##################
set x [len [interface find type=pppoe-out]]
set pppoeupcount 0
set pppoedowncount 0
#log info $x
log info
log info                    PPPOE-OUT 检测程序
log info               
log info (pppoe-out      Status    Remote Address        LocalAddress )
for i from=1 to=$x do={
   set status [interface get [interface find  name=(pppoe-out . $i)] running]
   if ($status=true) do={
    set newnetwork [ip address get [ip address find dynamic=yesinterface=(pppoe-out . $i)] network]
    set pppoestatus [ping 58.20.127.238 count=2 interface=(pppoe-out . $i)]
if($pppoestatus=1) do={
     log info (pppoe-out . $i.重启中......)
     beep
     int pppoe-client disable (pppoe-out . $i)
     delay 2
     int pppoe-client enable (pppoe-out . $i)
     delay 5
if($pppoedowncount=0) do={set pppoedown [($pppoedown .pppoe-out . $i)]}
if($pppoedowncount0) do={set pppoedown [($pppoedown .; pppoe-out . $i)]}
set pppoedowncount ($pppoedowncount + 1)
   }
   if($pppoestatus1) do={
          if ($pppoeupcount=0) do={set pppoeup [($pppoeup .pppoe-out . $i)]}
          if ($pppoeupcount0) do={set pppoeup [($pppoeup .; pppoe-out . $i)]}
setpppoeupcount ($pppoeupcount + 1)
     }
    set newaddress [ip address get [ip address find dynamic=yesinterface=(pppoe-out . $i)] address]
     log info (pppoe-out . $i.        .$pppoestatus .        .$newnetwork .                 .$newaddress)
      
   }
}
loginfo                     
loginfo
loginfo (PPPOE-Client 在线检测程序完毕,线路测试共.$pppoedowncount+$pppoeupcount .线)
  if($pppoeupcount=0) do={log info 没有在线的PPPOE-CLient!}
  if($pppoeupcount0) do={ log info (在线共计 . $pppoeupcount  . . $pppoeup)}
  if($pppoedowncount=0) do={log info 所有PPPOE-CLient均在线!}
  if($pppoedowncount0) do={ log info (断线共计 . $pppoedowncount  .,自动修复如下 . $pppoedown)}
beep length=0.5s
delay 1
beep

routeros
发表于 2014-3-31 16:02:52 | 显示全部楼层
各人方法不同,用你的想法去做,然后不断的去完善。
routeros
回复

使用道具 举报

发表于 2014-3-31 23:48:00 | 显示全部楼层
,我的思路不知道能否满足你的需求,如果能满足可以和我取得联系,QQ176152575

1、脚本定期自动侦测拨号状态,获取拨号所得网关地址。

2、对获取到的ISP网关地址进行在线状态诊断,或路由状态诊断

3、根据诊断结果,处理是否重新拨号等修复操作。

4、对修复操作体检,是否达成目的。记录处理日志,便于管理分析。
routeros
回复

使用道具 举报

发表于 2014-4-1 10:29:30 | 显示全部楼层
# ============================================================
#          凌风网维小区专用VRRP检测是否掉线
#   http://www.lflflf.cn 15889592318 适应RouterOS版本 5.X

:local count

:for count from=1 to=100 do={

/system scheduler
add disabled=no interval=1m name=("check_adsl".$count) on-event=":local rx 0\r\
    \n:local i 1\r\
    \n:local run 0\r\
    \n:local conn\r\
    \n:local adsl adsl$count\r\
    \n:for i from 1 to 10 do={\r\
    \n/interface monitor-traffic \$adsl once do={:set rx \$\"rx-bits-per-secon\
    d\"}\r\
    \n:delay 1000ms\r\
    \n:if (\$rx>0) do={:set run 1}\r\
    \n}\r\
    \n:if (\$run=0) do={\r\
    \n:set conn [/interface pppoe-client get [/interface pppoe-client find nam\
    e=\$adsl] running]\r\
    \n:if (\$conn=true) do={\r\
    \n/log error message=(\"[ \".\$adsl.\" \C3\BB\C1\F7\C1\BF\A3\AC\BD\FB\D3\
    \C3\C6\F4\D3\C3\D2\BB\CF\C2]\")\r\
    \n/interface disable \$adsl\r\
    \n/interface enable \$adsl\r\
    \n}\r\
    \n}"

}
routeros
回复

使用道具 举报

发表于 2015-12-1 23:29:57 | 显示全部楼层
楼主解决了吗
routeros
回复

使用道具 举报

发表于 2015-12-17 15:05:51 | 显示全部楼层
这个脚本不能用,我也看过,
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-3 05:06 , Processed in 0.061286 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表