免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3593 | 回复: 1
打印 上一主题 下一主题

学看脚本 学写脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-03 22:39 |只看该作者 |倒序浏览
:local assign-address\r\n:local new-address\r\n:local status\r\n:local x\r\n:set x 3 \r\n:for i from=1 to=$x do={\r\n:set status [/interface get [/interface find  name=(\"pppoe-out\" . $i)] running] \r\n:if ($status=true) do={\r\n:set new-address [/ip address get [/ip address find dynamic=yes interface=(\"pppoe-out\" . $i)] address]\r\n:set new-address [:pick $new-address 0 [:find $new-address \"/\"]]\r\n:set assign-address [/ip address get [/ip address find dynamic=no interface=(\"pppoe-out\" . $i)] address]\r\n:set assign-address [:pick $assign-address 0 [:find $assign-address \"/\"]]\r\n:if ($assign-address != $new-address) do={\r\n/ip address set [/ip address find comment=(\"adsl\" . $i)] address=$new-address network=$new-address broadcast=$new-address\r\n/ip route set [/ip route find comment=(\"adsl\" . $i)] gateway=$new-address\r\n}\r\n}\r\n}\r\n这是咱们论坛里某大哥写的 多ADSL接入的脚本 非常好用 适合多ADSL动态IP接入的用户\r\n\r\n这里 先说下用到的 语句 \r\nlocal 定义本地变量 \r\nset 赋值\r\nfor  do  循环执行\r\nif 条件选择\r\nget 获取\r\nfind 查找\r\nfrom to 从 至 \r\npick 取字符串或数组的某一断\r\n$调用变量前需加 这个符号\r\n\r\n开始分析\r\n:local assign-address\r\n:local new-address\r\n:local status\r\n:local x\r\n这段意思是 定义 几个变量 \r\n:set x 3 \r\n赋予 X 变量值 为 3  ( 意思是有3条ADSL )\r\n:for i from=1 to=$x do={\r\n循环执行 从 1 至 变量X 之前咱们已经定义了 X 为 3 了 所以就是 从1至3 \r\ndo={} 大括号里写 需要执行的东西 \r\n:set status [/interface get [/interface find  name=(\"pppoe-out\" . $i)] running] \r\n这句可以理解为 在interface目录里查找 名字为 \"pppoe-out\" . $i 获取 RUNING  赋予给 status \r\n    RUNING 是运行中的意思  i  是 环变量  \r\n:if ($status=true) do={\r\nIF说了是条件选择 这里可以理解意思为 如果  true 真实的\r\n整句 是 理解  如果 status为真实的  就执行 \r\n上面2句 大概就是 看看 拨号连接 是否运行 如果运行 就执行以下脚本\r\n:set new-address [/ip address get [/ip address find dynamic=yes interface=(\"pppoe-out\" . $i)] address]\r\n在 /ip address目录 查找pppoe-out\" . $i 获得address  赋予 new-address 的值为address  \r\n  address是地址的意思 这里代表IP  dynamic=yes 这是查看 /ip address 目录里 pppoe-out的状态\r\n配合\r\n:set assign-address [/ip address get [/ip address find dynamic=no interface=(\"pppoe-out\" . $i)] address]\r\n获取 2个 值  一个是 连接上的 值 一个是 没连接上的值 \r\n\r\n:set new-address [:pick $new-address 0 [:find $new-address \"/\"]]\r\n取new-address  /  前面的值  赋予给 new-address\r\n\r\n:if ($assign-address != $new-address) do={\r\n这是 获取了 一个连接上的值 一个没有连接上的值 做下对比\r\n如果 assign-address 不等于 new-address 就执行 下面的脚本\r\n/ip address set [/ip address find comment=(\"adsl\" . $i)] address=$new-address network=$new-address broadcast=$new-address\r\n/ip route set [/ip route find comment=(\"adsl\" . $i)] gateway=$new-address\r\n这2句就好理解了吧 我就不做解释了\r\n这里 就不说 这个脚本怎么用了 主要就是教新手 看懂脚本\r\n让新手 也会写脚本 \r\nROS里脚本发挥很大的作用\r\n\r\n在举个小例子\r\n在命令  \r\n:local  adwg1\r\n:local  adwg2\r\n:set adwg1 [/ip address get [/ip address find comment=adsl1] gateway]\r\n:set adwg2 [/ip address get [/ip address find comment=adsl2] gateway]\r\n/ip route set [/ip route find comment=“负载均衡\"] gateway=$adwg1 . \",\" . $adwg2\r\n分析\r\n定义2个变量  获取变量值 然后把值赋予给路由里标记为 负载均衡 的网关为 adsl1和adsl2  的网关\r\n思路就看大家怎么运用了  \r\n我是做的4线接入  \r\n1 2 做游戏  把 3 和4 线 做的 P2P 下载的负载均衡 3 4 线还兼职着QQ 80 等 \r\n做多线接入 最麻烦就是在 吊线切换线路\r\n只要大家 多想想 就可以做 \r\n| 和 || 语句做多线很好用  大家 自己发挥去 \r\nROS+脚本 功能强大 没的说

论坛徽章:
0
2 [报告]
发表于 2010-05-07 13:49 |只看该作者
虽然看不懂,但得顶下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP