bill_deng 发表于 2013-3-28 20:44:13

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

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

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

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

ai188 发表于 2014-6-28 10:17:04

同问 自带的线路检查怎么用?没有看见有设置

rockup 发表于 2013-3-28 22:58:02

正好需要,谢了

persist86 发表于 2013-3-28 23:19:48

原来已下载过旧版本的同学不用再下载,我已将新版本用消息发给你们了。

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

QQ78357343 发表于 2013-3-29 10:36:36

跟 我写的差不多。害我又花了20铜版

sealin 发表于 2013-3-29 14:43:21

本帖最后由 sealin 于 2013-3-29 14:44 编辑

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

另外
/ip address
remove
这个用不着的
ppp拨号disable后,ip就没了,那是动态ip,不用主动删除

bill_deng 发表于 2013-3-29 15:30:16

sealin 发表于 2013-3-29 14:43 static/image/common/back.gif
楼主,你这个脚本有个bug
一旦用于检测的ip有问题,ping不通,那么这个脚本就会反复重新连接pppoe.....
建 ...

谢谢支持。

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

sealin 发表于 2013-3-29 16:00:54

bill_deng 发表于 2013-3-29 15:30 static/image/common/back.gif
谢谢支持。

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

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

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

sealin 发表于 2013-3-29 16:11:30

bill_deng 发表于 2013-3-29 15:30 static/image/common/back.gif
谢谢支持。

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

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

QQ78357343 发表于 2013-3-31 21:42:23

看看我的方法吧,{
#pppoename PPP连接名包含的
:local pppoecliname "pppoe-cnc"
:local remoteip "210.21.196.6"
#接收
:local linkcount [:len ]
:local RxCurRate "0";:local TxCurRate "0";:local linkname;:local cur "0";:local a;
#发送
/interface
:foreach i in= do={
:set linkname
:if ($linkcount>$cur && ) do={
/interface monitor $linkname once do={:set RxCurRate $"rx-bits-per-second";}
/interface monitor $linkname once do={:set TxCurRate $"tx-bits-per-second";}
:if ($RxCurRate="1000" && $TxCurRate="1000") do={
:set a
:if ($a = 0) do={
:log warning ("线路" . $linkname . "不正常,正在断开重拔")
/interface dis $linkname
:delay 1
/interface en $linkname
    }}
}
#:log info ($linkname)
:set cur ($cur+1)
}
:log info ("所有线路测试OK")
}
我是通过有没有流量来检测的,我们这边的联通经常出现这种情况。

bill_deng 发表于 2013-3-31 23:17:03

本帖最后由 bill_deng 于 2013-3-31 23:31 编辑

QQ78357343 发表于 2013-3-31 21:42 static/image/common/back.gif
看看我的方法吧,我是通过有没有流量来检测的,我们这边的联通经常出现这种情况。

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

delay 用法是亮点,不错。

bill_deng 发表于 2013-3-31 23:34:44

QQ78357343 发表于 2013-3-31 21:42 static/image/common/back.gif
看看我的方法吧,我是通过有没有流量来检测的,我们这边的联通经常出现这种情况。

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

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

QQ78357343 发表于 2013-4-1 08:12:19

小于等于,不好意思,发脚本时整错了。细心的人好啊。
:if ($RxCurRate<="1000" && $TxCurRate<="1000") do={

QQ78357343 发表于 2013-4-1 17:29:23

指点一下,实测试确实可以检测出一些拔上号而又网络不通的外线。交流下,看看有什么更好的方法。

tmkai 发表于 2013-4-1 18:32:50

看一下 有没有用

bill_deng 发表于 2013-4-2 10:40:12

QQ78357343 发表于 2013-4-1 17:29 static/image/common/back.gif
指点一下,实测试确实可以检测出一些拔上号而又网络不通的外线。交流下,看看有什么更好的方法。

指教不敢当。改为只检测下载流量就好了。
页: [1] 2 3 4
查看完整版本: 线路检测并重拨脚本(linecheck_gen_0.2)