没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
ROS 中文脚本手册[part1]
地址 : http://www.mikrotik.com/
感谢其为我们带来功能如此强大的代理服务器端
主要信息
----------------
◇总括
本手册对 ROS 脚本语言进行基本的介绍。
脚本提供了一种可以在路由器上自动进行因一些事件的发生而执行用户所定义
的维护任务。脚本是由配置指令和表达式[ICE - 控制台指令与表达式]所组成。
配置指令是 ROS 的标准指令,例如{/ip rewall lter add chain=forward
protocol=gre action=drop},这些指令可以在相关手册中查询,当表达式
以":"为前缀的话它将在应用于所有的子项中。
事件的出现可以触发脚本的执行,并且不仅仅限制于系统调用,Tra'c
Monitorin 工具和 Netwatch 工具都可以生成事件。
◇本文应用环境
ROS 组件要求:system
最低许可:Level1
子目录:/system script
遵循标准和技术:无
硬件需求:无特殊要求
◇相关文档
◆Software Package Management
◆System Scheduler
◆Network Monitor
◆Tra'c Monitor
◆Serial Port Monitor
控制台指令语法
----------------
◇总体描述
控制台指令由以下部分所组成:
◆前缀 - 指出以个指令是否以个 ICE[控制台指令与表达式],例如:自根目录开
始的路径指令"/"
[admin@MikroTik]ip rewall mangle>/ping 10.0.0.1
◆路径 - 以个需求目录等级的相关路径,例如{.. lter}
[admin@MikroTik]ip rewall mangle>.. lter print
◆路径参数 - 此部分需要选取一些目录,因为实际路径将由不同用户的输出所
组成,例如{mylist}
[admin@MikroTik]ip rewall mangle>/routeing prex-list list mylist
◆动作 - 在特别的目录中需要至少以个动作,例如{add}
[admin@MikroTik]ip rewall mangle>/ip rewall lter add
chain=forward action=drop
◆不定参数 - 这些参数是由一些动作所要求,置于动作指令之后的操作参数,
例如{10.0.0.1}
[admin@MikroTik]ip rewall mangle>/ping 10.0.0.1
◆名称[=值] - 一个已定义的参数,后面跟相关的值,例如{ssid=myssid}
/interface wireless set wlan1 ssid=myssid
注意:变量替换,指令替换和表达式仅仅支持路径参数和不定参数必须直接给
出,因此,{:put (1 + 2)}可行而{:("pu" . "t")}不可行。
◇案例
内部控制台指令一般以下面的形式出现:
◆/ping 10.0.0.1 count=5
|前缀 /
|动作 ping
|不定参数 10.0.0.1
|名称[=值] count=5
◆.. ip rewall rule input
|路径 ..ip rewall rule
|路径参数 input
◆:for i from=1 to=10 do={:put $1}
|前缀 :
|动作 for
|不定参数 i
|名称[=值] from=1 to=10 do={:put $1}
◆/interface monitor-tra'c ether1,ether2,ipip1
|前缀 /
|路径 interface
|动作 monitor-tra'c
|不定参数 ether1,ether2,ipip1
表达式
----------------
◇总体描述
这一节将提供一种用一个长指令来执行指令的方式,将其封入大括号"{}"内。
注意:在原文中提出一个指令继承的问题,先看例子。
[admin@MikroTik] ip route> /user {
{... /ip route
{... print}
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf
# DST-ADDRESS PREF-SRC G GATEWAY DISTANCE INTERFACE
0 ADC 10.0.0.0/24 10.0.0.1 LAN
1 ADC 192.168.0.0/24 192.168.0.68 WAN2
2 DC 192.168.0.0/24 192.168.0.69 WAN1
3 A S 0.0.0.0/0 r 192.168.0.200 WAN2
在原文中描述此指令的结果相当于{/user print},而我在 2.9.27 上测试此指
令的结果相当于{/ip route print},现路径不变。
关于此我猜测可能是早期版本支持原文中说法,而 2.9.27 是采用我测试的方式,
即大括号内的指令为优先级指令,以下给出一个支持的例子。
[admin@MikroTik] ip route> /user
[admin@MikroTik] user> /ip route {
{... /user
{... print}
Flags: X - disabled
# NAME GROUP ADDRESS
0 ;;; system default user
admin full 0.0.0.0/0
1 x write 0.0.0.0/0
2 y
以下接个另外的例子,说明此方式的使用方式
[admin@MikroTik] ip route> /user {
{... add name=x password=y group=write
{... add name=y password=z group=read
{... print}
Flags: X - disabled
# NAME GROUP ADDRESS
0 ;;; system default user
admin full 0.0.0.0/0
1 x write 0.0.0.0/0
2 y read 0.0.0.0/0
变量
----------------
◇总体描述
ROS 脚本语言支持两类变量,全局变量(全系统范围)和本地变量(仅仅在所在脚
本有效)。变量以"$"符号定义,后跟变量名。同时,也可以用{set}指令和
{unset}指令来代替"$"设置变量名。变量名可以由字母,数字和"-"符号所组
成,必须在使用前预先定义。有四种类型的声明可供使用。
◆global - 为 global 关键字所定义,全局变量能为所有脚本所用,也可以用于
在同一路由器中的所有控制台登陆。然而,全局变量重启后不保留。
◆loval - 为 local 关键字所定义,本地变量不能与别的脚本共享,不能用于相
同脚本的别的接口或者别的控制台登陆。本地变量的值将在脚本完成工作后消
失。
◆loop index variables - 为 for 和 foreach 所定义,这些变量存在于 do 循环
中并且当 do 指令完成时消失。
◆monitor variables - 一些带有 do 部分的 monitor 指令可以引进这样的变量。
你能在 do 循环中加入{:environment print}来实现对此变量的监控。
同样,你也可以使用 set 指令来定义变量的新的值。但是这样做将使其丢失两
个不定参数:变量名和变量的新值,如果一个变量不再使用,可以使用
{:unset}指令来释放变量。如果你用此指令释放了本地变量,这个值将消失,
而你用此指令释放了全局变量,值将仍保留在路由器中,它只是不再为当前脚
本所用。
举例:
[admin@MikroTik] ip route> /
[admin@MikroTik] > :global g1 "this is global variable"
[admin@MikroTik] > :put $g1
this is global variable
[admin@MikroTik] >
指令替换和返回值
----------------
◇总体描述
如果一些控制台指令的输出在能符合别的指令的输入要求,这将是一件很有意
义的事。在 ROS 控制台中,这样的事情是通过从指令返回值来做到的。从指令
得到返回值,我们需要将其封装入方括号"[]"内。在方括号内的指令执行后,
将通过方括号得到指令执行的结果。这样的过程称为指令替换。
以下指令可以得到返回值,但也不仅仅限于此:
◆nd - 将返回一个特殊项目的条目
◆ping - 将返回成功 ping 达的次数
◆time - 将返回标准的时间值
◆incr 和 decr - 将返回一个变量的新值
◆add - 将返回新创造项目的数量
◇举例
剩余24页未读,继续阅读
资源评论
- ubiny2015-12-15很好的东西,走心的资源
- QQ1734613582014-08-05还不错,很有帮助
- nh_wzg2013-11-30这个是原来主页上script部分的内容翻译,直接而简洁,可以作为学习的资料保留。
- longhuazhen2012-11-30结合英文原文看,很有帮助
- datsuan2013-10-07还是挺全面的,常用的设置都有了
sozhangma
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- delphi实现DBGrid全选和反选功能
- 25C11F41-2B2A-4D1A-AAA8-7C654526B129.pdf
- Android Studio Jellyfish(android-studio-2023.3.1.18-cros.deb)
- MVC+EF框架+EasyUI实现权限管理源码程序
- python第66-75天,Day66-75.rar
- python后端服务project-of-tornado.rar
- python测验,hello-tornado.rar
- 基于SpringBoot+Vue3快速开发平台、自研工作流引擎源码设计.zip
- docker安装部署全流程
- 基于树莓派的人脸识别系统python源码+项目部署说明+超详细代码注释.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功