#===================================================================================
# 参数-脚本 By QQ:2338953 作者淘宝优站:.
# 因为本项目使用了ISP服务商提供的路由猫,猫的内部已经集成配置了ADSL帐号。
# ISP线路---公网IP---- 路由猫-----思科2960交换机vlan--------PCC
# 此时,,无法通过监视此IP判断线路是否正常。因此改进了正常线路数的获取机制。
#===================================================================================
# ROS版本
# 思路: 自动判断 vlan 总线路数,自动判断正常vlan线路数
# 根据对比,如果正常线路数与总线路数不一致,参数,
# 如果一致,参数。
# 对 vlan线路名称和 Mangle 标记连接和标记路由名称需要按要求设置,或者改些脚本符合你自己规则。
# 需要改的关键词有"vlan64" 对应interface 里的线路名称"to_vlan64" 路由标记"vlan64_conn" 连接标记,数字全用变量$ii替代
# 要求:
# 变量 vlanAllNum vlan 总线路数量
# 变量 vlanRunNum 实际运行正常的 vlan 线路数量
# 变量 y PCC后面一部分自增变量。
# 新增 yB 参数,是限制24网段用户只能使用VLAN80- VLAN92这13条线路判断条件是$ii >= 80,,如果不需要可删除
# 变量 vlan_num_四个参数本人的VLAN当时是不连续的,是以线路的电话号码的后两位来编号的,共24条,分别是vlan64~vlan67 vlan73~vlan92
{
:local vlanAllNum
:local vlanRunNum
:local vlanRunNumB
:local y 0
:local yB 0
:local z 0
:local vlanstartA 64
:local vlanendA 67
:local vlanstartB 73
:local vlanendB 92
#得到 vlan 总线路数,包括禁用的,未拨号的。(因个人原因,其中有一条专线VLAN除外不计,所以减去1)。
:set vlanAllNum ([:len [/interface vlan find ]] - 1)
#得到 vlan 正常线路数开始.....
:set vlanRunNum 0
:set vlanRunNumB 0
:for ii from=$vlanstartA to=$vlanendA do={
if ([:len [/interface vlan find running=yes vlan-id=$ii]]=1) do={
if ([/ping count=2 address= interface=("vlan".$ii) routing-table=("to_vlan".$ii)] > 0) do={
:set vlanRunNum ($vlanRunNum + 1)}
}
}
:for ii from=$vlanstartB to=$vlanendB do={
if ([:len [/interface vlan find running=yes vlan-id=$ii]]=1) do={
if ([/ping count=2 address= interface=("vlan".$ii) routing-table=("to_vlan".$ii)] > 0) do={
:set vlanRunNum ($vlanRunNum + 1)}
if ($ii >= 80) do={:set vlanRunNumB ($vlanRunNumB + 1)}
}
}
:log info ("vlanAllNum/vlanRunNum/...13/vlanRunNumB:".$vlanAllNum."/".$vlanRunNum."...13/".$vlanRunNumB)
#得到 vlan 正常线路数结束!
:if ($vlanRunNum<$vlanAllNum) do={
:for ii from=$vlanstartA to=$vlanendA
参数附script脚本(精选) 来自淘豆网www.taodocs.com转载请标明出处.