找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 88780|回复: 63

[脚本] 线路检测并重拨脚本(linecheck_gen_0.2)

  [复制链接]
发表于 2013-3-28 20:44:13 | 显示全部楼层 |阅读模式

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

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

×
因某些不可知的原因, 系统里的外网连接会出现一种奇怪的现象,线路状态为已连接(running),但是只有上行流量,没有下行流量,需要对该线路进行重拨才能回复正常。出现这种情况时,用户那里会出现网络慢,打不开网页等故障。

本脚本专为处理这种而情况而作,只需以附件内容添加一个脚本,运行一次,即生成另外一个新脚本及排期表,定时检测系统外网连接,发现问题连接即自动重拨。

这个是升级版本,原版本在某些特殊情况下可能导致系统出错,原来已下载过旧版本的同学不用再下载,我已将新版本用消息发给你们了。

linecheck_gen_0.2.txt.zip (660 Bytes, 下载次数: 286, 售价: 20 铜板)

评分

参与人数 1铜板 +30 收起 理由
tangdong + 30 赞一个!

查看全部评分

routeros
发表于 2014-6-28 10:17:04 | 显示全部楼层
同问 自带的线路检查怎么用?没有看见有设置
routeros
回复 1 0

使用道具 举报

发表于 2013-3-28 22:58:02 | 显示全部楼层
正好需要,谢了
routeros
回复

使用道具 举报

发表于 2013-3-28 23:19:48 | 显示全部楼层
原来已下载过旧版本的同学不用再下载,我已将新版本用消息发给你们了。

请问这个在ROS里面用脚本如何做到,谢谢

点评

是 routerclub 的站内消息。  发表于 2013-3-28 23:26
routeros
回复

使用道具 举报

发表于 2013-3-29 10:36:36 | 显示全部楼层
跟 我写的差不多。害我又花了20铜版
routeros
回复

使用道具 举报

发表于 2013-3-29 14:43:21 | 显示全部楼层
本帖最后由 sealin 于 2013-3-29 14:44 编辑

楼主,你这个脚本有个bug
一旦用于检测的ip有问题,ping不通,那么这个脚本就会反复重新连接pppoe.....
建议做双重检测

另外
/ip address
remove [find interface=$linkname]
这个用不着的
ppp拨号disable后,ip就没了,那是动态ip,不用主动删除
routeros
回复

使用道具 举报

 楼主| 发表于 2013-3-29 15:30:16 | 显示全部楼层

谢谢支持。

因为脚本执行速度太快,有时候旧IP还未被系统清除,新连接就已经连上了,这时系统就不再去清除旧IP,导致同一连接有两个IP,最终系统出错。同时因为 ROS 里没有 BASH 里的 sleep 命令来延迟执行,所以加入主动删除IP这一步骤。
routeros
回复

使用道具 举报

发表于 2013-3-29 16:00:54 | 显示全部楼层
bill_deng 发表于 2013-3-29 15:30
谢谢支持。

因为脚本执行速度太快,有时候旧IP还未被系统清除,新连接就已经连上了,这时系统就不再 ...

嗯,考虑比较周到,但是清除ip需要放到disable连接之前,这样比较妥当

另外二次检测多加一个判断ip就可以了
我加了个b作为二次判断
a和b都不通就重新连接
另外我加了邮件报警
:if ($a = 0 && $b = 0)

点评

不错,这样更周全了。  发表于 2013-3-30 08:48
routeros
回复

使用道具 举报

发表于 2013-3-29 16:11:30 | 显示全部楼层
bill_deng 发表于 2013-3-29 15:30
谢谢支持。

因为脚本执行速度太快,有时候旧IP还未被系统清除,新连接就已经连上了,这时系统就不再 ...

另外发现一个问题
如果pppoe的状态为正在连接
如图 20130329160846.jpg
则用running无法检测到
我试过!disabled也无法检测
也就是running等同于!disabled
看来还是用for i from=1 to=99来逐个搞比全面
不知道你还有别的办法么

点评

这种情况不用去考虑。还没有连接上的线路不会被分配流量,不会影响系统运行。  发表于 2013-3-30 08:53
routeros
回复

使用道具 举报

发表于 2013-3-31 21:42:23 | 显示全部楼层
看看我的方法吧,
  1. {
  2. #pppoename PPP连接名包含的
  3. :local pppoecliname "pppoe-cnc"
  4. :local remoteip "210.21.196.6"
  5. #接收
  6. :local linkcount [:len [/interface find name~$pppoecliname running]]
  7. :local RxCurRate "0";:local TxCurRate "0";:local linkname;:local cur "0";:local a;
  8. #发送
  9. /interface
  10. :foreach i in=[find name~$pppoecliname] do={
  11. :set linkname [get $i name]
  12. :if ($linkcount>$cur && [get $i running]) do={
  13. /interface monitor $linkname once do={:set RxCurRate $"rx-bits-per-second";}
  14. /interface monitor $linkname once do={:set TxCurRate $"tx-bits-per-second";}
  15. :if ($RxCurRate="1000" && $TxCurRate="1000") do={
  16. :set a [/ping $remoteip count=10  interval=0.1 interface=$linkname]
  17. :if ($a = 0) do={
  18. :log warning ("线路" . $linkname . "不正常,正在断开重拔")
  19. /interface dis $linkname
  20. :delay 1
  21. /interface en $linkname
  22.     }}
  23. }
  24. #:log info ($linkname)
  25. :set cur ($cur+1)
  26. }
  27. :log info ("所有线路测试OK")
  28. }
复制代码
我是通过有没有流量来检测的,我们这边的联通经常出现这种情况。

点评

这个才值20铜板的  发表于 2013-4-2 18:33
哈哈,你是不是来踢馆呀? 开玩笑了,欢迎交流,集思广益,相互促进。我之前也发过不收铜板的脚本,这次收铜板,只是不想把伸手党惯坏了而已。我还是要再看看手册才行了,有 delay 都不知道啊。  发表于 2013-3-31 22:57
routeros
回复

使用道具 举报

 楼主| 发表于 2013-3-31 23:17:03 | 显示全部楼层
本帖最后由 bill_deng 于 2013-3-31 23:31 编辑
QQ78357343 发表于 2013-3-31 21:42
看看我的方法吧,我是通过有没有流量来检测的,我们这边的联通经常出现这种情况。


我有点不明白了,你那边线路不通时,其即时收发流量是 =1000 吗?还是 <=1000 ?

delay 用法是亮点,不错。
routeros
回复

使用道具 举报

 楼主| 发表于 2013-3-31 23:34:44 | 显示全部楼层
QQ78357343 发表于 2013-3-31 21:42
看看我的方法吧,我是通过有没有流量来检测的,我们这边的联通经常出现这种情况。

:if ($RxCurRate="1000" && $TxCurRate="1000") do={

这一判断的依据是什么呀? 按照这样来恐怕这个脚本不能起到作用吧?
routeros
回复

使用道具 举报

发表于 2013-4-1 08:12:19 | 显示全部楼层
小于等于,不好意思,发脚本时整错了。细心的人好啊。
:if ($RxCurRate<="1000" && $TxCurRate<="1000") do={

点评

你这个判断还是不行的。呵呵。  发表于 2013-4-1 08:21
routeros
回复

使用道具 举报

发表于 2013-4-1 17:29:23 | 显示全部楼层
指点一下,实测试确实可以检测出一些拔上号而又网络不通的外线。交流下,看看有什么更好的方法。
routeros
回复

使用道具 举报

发表于 2013-4-1 18:32:50 | 显示全部楼层
看一下 有没有用
routeros
回复

使用道具 举报

 楼主| 发表于 2013-4-2 10:40:12 | 显示全部楼层
QQ78357343 发表于 2013-4-1 17:29
指点一下,实测试确实可以检测出一些拔上号而又网络不通的外线。交流下,看看有什么更好的方法。

指教不敢当。改为只检测下载流量就好了。
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 16:16 , Processed in 0.238861 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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