找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4821|回复: 6

[脚本] 新手 脚本求助,大家进来看看~!

[复制链接]
发表于 2012-2-19 11:26:01 | 显示全部楼层 |阅读模式

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

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

×
我想做一个根据在线机器数量 来开启和禁用相关限速队列的脚本,
如下:

:set pc [:len [/ip firewall address-list find list=pclist]]
:if ($pc<=65) do=
{
:for aaa from=2 to=210 do={queue simple disable ("a" . $aaa)}
}

这个计划脚本,每隔一分钟执行一次,每次CPU都会100%, 就算队列a2-a210都是disable状态,CPU也会有好几秒钟的100%,

我想在里面再加一个判断,当队列a2为enable状态时,才执行:for aaa from=2 to=210 do={queue simple disable ("a" . $aaa)},


综合起来就是,当在线机器数量<=65台,a2为开启状态是,禁用a2-a210,


求助啊,谢谢了,我是个新手,上面这些脚本也是我在百度上面东拼西凑的,自己也不大会弄,所以来求助!
routeros
发表于 2012-2-19 12:10:42 | 显示全部楼层
出点钱找人给你定做个不就完事了。
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-19 15:20:11 | 显示全部楼层
没人帮帮吗?
routeros
回复

使用道具 举报

发表于 2012-2-19 17:02:54 | 显示全部楼层
本帖最后由 huigezi' 于 2012-2-19 17:13 编辑


:do {
:local i "66"
:local n "a2"
:local online [:len [/ip firewall address-list find list=pclist]]
:if ($online <= $i) do={
/queue simple enable [/queue simple find name=$n]
/queue simple disable [/queue simple find name!=$n]
};
:if ($online > $i) do={
/queue simple disable [/queue simple find name=$n]
/queue simple enable [/queue simple find name!=$n]
}};




这是禁止除a2之外的队列
大与65的时候反过来关闭a2 开启除a2之外全部的队列
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-19 17:22:51 | 显示全部楼层
routeros
回复

使用道具 举报

发表于 2012-2-20 12:52:52 | 显示全部楼层
{
:local Ta2
:local pc
:set pc [:len [/ip firewall address-list find list=pclist]]
:if ($pc<=65) do={
if ([/queue simple get a2 disabled]= false ) do={
:for aaa from=2 to=210 do={queue simple disable ("a" . $aaa)}
:delay 500ms}}
}

判断a2 状态,如果是启用的才执行 disable规则

delay 减少cpu占用。
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-23 21:51:35 | 显示全部楼层
谢谢了~!!!!!!
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 09:37 , Processed in 0.073530 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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