找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 11191|回复: 9

[脚本] 脚本请教

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

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

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

×
:if [/interface pppoe-client disable numbers=pppoe-out1 ] do={/interface pppoe-client enable numbers=pppoe-out2}

:if [/interface pppoe-client disable numbers=pppoe-out2 ] do={/interface pppoe-client enable numbers=pppoe-out1}


为什么这样不行呢,我要做到的效果就是!

线路1如果是开启的,就关闭线路2。如果线路2是关闭的,就开启线路1.

怎么没效果呢!不知道哪里写错了!




routeros
发表于 2012-2-9 17:40:19 | 显示全部楼层
自相矛盾的想法
线路1开启的关闭线路2=线路2关闭的开启线路1
routeros
回复

使用道具 举报

发表于 2012-2-9 17:41:48 | 显示全部楼层
本帖最后由 huigezi' 于 2012-2-9 17:42 编辑


:do {
/interface pppoe-client
:local a [get [find name="pppoe-out1"] disabled]
:if ($a!=true) do={disable [find name="pppoe-out2"]
};
:if ($a=true) do={enable [find name="pppoe-out2"]
};/;};

线路1开启的关闭线路2,线路1关闭的开启线路2
routeros
回复

使用道具 举报

发表于 2012-2-9 17:54:37 | 显示全部楼层
本帖最后由 jike106397 于 2012-2-9 17:55 编辑

:if ([/interface pppoe-client get [/interface pppoe-client find name="pppoe-out1"] running ]=false) do={/interface pppoe-client enable [/interface pppoe-client find name="pppoe-out2"]}

:if ([/interface pppoe-client get [/interface pppoe-client find name="pppoe-out2"] running ]=false) do={/interface pppoe-client enable [/interface pppoe-client find name="pppoe-out1"]}


这样应该可以的
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-9 17:57:28 | 显示全部楼层
本帖最后由 星空之云 于 2012-2-9 18:11 编辑

不行啊!

我想做线路切换,运行这段代码后。如果线路1是运行着,就停用线路2. 如果线路2是运行着,就停用线路1

也就是运行一次就启动线路1关闭线路2,再运行一次就启动线路2关闭线路1
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-9 18:11:29 | 显示全部楼层
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-9 18:15:52 | 显示全部楼层
jike106397 发表于 2012-2-9 17:54
:if ([/interface pppoe-client get [/interface pppoe-client find name="pppoe-out1"] running ]=false)  ...

我想做线路切换,运行这段代码后。如果线路1是运行着,就停用线路2. 如果线路2是运行着,就停用线路1

也就是运行一次就启动线路1关闭线路2,再运行一次就启动线路2关闭线路1

因为我想不断更换公网IP地址,又不想ROS下面的网络断线!
routeros
回复

使用道具 举报

发表于 2012-2-9 18:26:21 | 显示全部楼层
so it is:


:if ([/interface pppoe-client get [/interface pppoe-client find name="pppoe-out1"] running ]) do={/interface pppoe-client disable [/interface pppoe-client find name="pppoe-out2"]}

:if ([/interface pppoe-client get [/interface pppoe-client find name="pppoe-out2"] running ]) do={/interface pppoe-client disable[/interface pppoe-client find name="pppoe-out1"]}
routeros
回复

使用道具 举报

发表于 2012-2-9 18:42:58 | 显示全部楼层
本帖最后由 huigezi' 于 2012-2-9 18:43 编辑

楼上的你理解错楼主意思了吧

他说的是关闭1,开启2,开启1,关闭2

是检测是否关闭 而不是检测是否正常通信  

楼主的要求用判断会增加逻辑交叉错误 直接用延迟就行了


/interface pppoe-client
enable [find name="pppoe-out1"]
disable [find name="pppoe-out2"]
:delay 1m
disable [find name="pppoe-out1"]
enable [find name="pppoe-out2"]


计划任务比如设置2分钟执行,执行后延迟1分钟关闭1,开启2,再被计划任务执行的时候又是循环开始,开启1,关闭2,延迟1分钟后 关闭1,开启2

可是你的要求了?
routeros
回复

使用道具 举报

 楼主| 发表于 2012-2-9 18:55:23 | 显示全部楼层
本帖最后由 星空之云 于 2012-2-9 19:15 编辑
huigezi' 发表于 2012-2-9 18:42
楼上的你理解错楼主意思了吧

他说的是关闭1,开启2,开启1,关闭2


谢谢,可以了!
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 09:39 , Processed in 0.057456 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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