找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 12562|回复: 15

[脚本] 放出一个线路连接质量检测小工具

  [复制链接]
发表于 2012-12-2 16:23:21 | 显示全部楼层 |阅读模式

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

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

×
在使用多线路出口时,某些线路可能会出现连接质量不好、丢包的情况,这时要把它们找出来处理,可以用 /tools/ping 工具一个条条线路去找出来。但如果线路多,这工作就有点烦了。这里编了一个小脚本,只要运行一下脚本,一会结果就出来了。

:global testresult "Result is: "
:local linkname
:local a
:local X 20
:local status

/interface
:for i from=1 to=$X do={
:set linkname ("pppoe-out".$i)
:set status [/interface get [/interface find  name=$linkname] running]
    :if ("$status" = true) do={
:set a [/ping 202.96.134.134 count=100  interval=0.1 interface=$linkname]
:if ($a < 95) do={
:set a ($a . "%" )
:set testresult ($testresult . "  " . $linkname . "  " . $a)
}}}

:if ($testresult = "Result is: ") do={
:put "All lines work great!"
} else {
:put $testresult
}

评分

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

查看全部评分

routeros
发表于 2012-12-2 18:43:11 | 显示全部楼层
正想写一个呢。现成的来了
routeros
回复

使用道具 举报

发表于 2012-12-3 07:25:20 | 显示全部楼层
实用。非常好。支持

谢谢分享
routeros
回复

使用道具 举报

头像被屏蔽
发表于 2012-12-3 10:48:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
routeros
回复

使用道具 举报

发表于 2012-12-3 10:50:09 | 显示全部楼层
学习中,我也想知道怎么操作的
routeros
回复

使用道具 举报

 楼主| 发表于 2012-12-3 11:16:43 | 显示全部楼层
本帖最后由 bill_deng 于 2012-12-3 11:46 编辑

使用说明:
一:在 /system/scripts 新建一个脚本,自己设一个名称,比如: linetest
二:把所有脚本内容复制到 Source 文本框内。根据你的网络环境与脚本注释做些相应的调整。
三:打开一个 New Terminal,运行命令: /sys scr run linetest     
      这时你会看到飞快的 ping 命令在运行,运行结后,会打出结果:
    如果所有线路丢包率在5%以下,结果就是: All Lines work great!
       如果有线路丢包率在5%以上(比如线路 pppoe-out10 丢包括10% ) ,结果就是:Result is: pppoe-out10  90%


:global testresult "Result is: "
:local linkname
:local a

#设置总线路数量
:local X 20
:local status

#设置测试目标 IP 地址
:local remoteip 202.96.134.134


/interface
:for i from=1 to=$X do={
:set linkname ("pppoe-out".$i)
:set status [/interface get [/interface find  name=$linkname] running]
    :if ("$status" = true) do={
:set a [/ping $remoteip count=100  interval=0.1 interface=$linkname]
:if ($a < 95) do={
:set a ($a . "%" )
:set testresult ($testresult . "  " . $linkname . "  " . $a)
}}}

:if ($testresult = "Result is: ") do={
:put "All lines work great!"
} else {
:put $testresult
}
routeros
回复

使用道具 举报

 楼主| 发表于 2012-12-4 10:24:38 | 显示全部楼层
新增活动线路统计功能。

:global testresult "Result is: "
:local linkname
:local a
:local X 20
:local status
:local totalactive 0
:local remoteip 202.96.134.134

/interface
:for i from=1 to=$X do={
:set linkname ("pppoe-out".$i)
:set status [/interface get [/interface find  name=$linkname] running]
:if ("$status" = true) do={
  :set totalactive ($totalactive + 1)
  :set a [/ping $remoteip count=100  interval=0.1 interface=$linkname]
   :if ($a < 95) do={
    :set a ($a . "%" )
    :set testresult ($testresult . "  " . $linkname . "  " . $a)
    }
  }
}

:put "Total $totalactive lines active."

:if ($testresult = "Result is: ") do={
:put "All lines work great!"
} else {
  :put $testresult
}
routeros
回复

使用道具 举报

发表于 2012-12-6 11:30:37 | 显示全部楼层
一看这家伙就是深圳的。呵呵
routeros
回复

使用道具 举报

 楼主| 发表于 2012-12-6 14:38:42 | 显示全部楼层
routeros
回复

使用道具 举报

 楼主| 发表于 2012-12-6 14:42:43 | 显示全部楼层
bill_deng 发表于 2012-12-6 14:38
奇怪,就算我脸上写了字,你也看不到呀。

我知道了,我自己泄密了。
routeros
回复

使用道具 举报

发表于 2012-12-7 15:25:11 | 显示全部楼层
这个功能很实用,暂未测试,收藏先,谢谢楼猪
routeros
回复

使用道具 举报

发表于 2012-12-7 18:45:34 | 显示全部楼层
如果直接能在脚本中运行就好了。
routeros
回复

使用道具 举报

发表于 2012-12-7 22:01:12 | 显示全部楼层
定期执行如果不看也白执行,看的时候手动执行下野可以

点评

定期执行也可以,把结果发到日志里。  发表于 2012-12-7 23:06
routeros
回复

使用道具 举报

发表于 2012-12-8 11:17:59 | 显示全部楼层
5.8测试出错
routeros
回复

使用道具 举报

发表于 2012-12-8 11:20:55 | 显示全部楼层
抱歉,是我使用不当。5.8测试可行,谢谢楼主提供脚本
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-11 00:10 , Processed in 0.072855 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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