SuperAPI AI 工具集

mikrotik-routeros-rsc

部署与运维

查看项目

更新于 10-15 13:52

技能介绍

用途

该技能用于指导 RouterOS 脚本(.rsc)的创建、编辑与审查,目标是生成安全、幂等且符合最佳实践的脚本,并在导入前完成验证。适用于需要生成、调整或检查 RouterOS 脚本的任务。

主要能力

  • 引导脚本的创建、编辑与审查流程。
  • 提供幂等模式,避免重复执行造成意外变更。
  • 提供安全实践,限制权限范围并禁止破坏性命令。
  • 提供导入前的语法与风险校验(linter)。
  • 提供 dry-run 与错误捕获机制,支持受控导入。

使用方式

快速工作流:

  1. 定义脚本目标与范围。
  2. 应用幂等模式(参见 References)。
  3. 使用 linter(scripts/lint_rsc.py)校验语法与风险。
  4. 通过 dry-run 和 on-error 测试导入。
  5. 以受控方式导入生产环境。

核心实践:

  • 在 add/set 之前优先使用 find where ... 加条件判断。
  • 避免在 /system script add policy=... 中使用过宽权限。
  • 使用 :onerror 和 :jobname 提升健壮性与单实例运行。
  • 禁止包含破坏性命令(如 system reset-configuration)。
  • 通过 :local 与 :global 参数化并隔离作用域。

验证与测试:

  • Lint:python scripts/lint_rsc.py path/to/script.rsc。
  • 安全导入(RouterOS ≥ 7.16.x):import test.rsc verbose=yes dry-run 会报告文件中的每个语法错误,而不应用任何更改。
  • :do { import test.rsc } on-error={ :put "Failure" } —— on-error= 是 7.16.x 引入的导入专用参数,用于捕获导入本身的错误(文件缺失、语法错误);被导入脚本内部产生的错误不会在此捕获。
  • :onerror e in={ import test.rsc } do={ :put "Failure - $e" } —— :onerror 是通用错误处理命令(任何支持它的 RouterOS 版本),错误消息绑定到命名变量。

参考文档(按需使用):

  • 语言与语法:references/LANGUAGE.md
  • .rsc 导出/导入、dry-run 与 onerror:references/RSC_GUIDE.md
  • 安全与幂等最佳实践:references/SAFE_PRACTICES.md
  • 常见示例与模式:references/EXAMPLES.md
  • Linter 规则:references/LINTER_RULES.md

适用场景

  • 需要生成、调整或审查 RouterOS .rsc 脚本时。
  • 需要在导入前验证脚本语法与风险时。
  • 需要以幂等、安全方式管理 RouterOS 配置时。

限制

  • 脚本应与 RouterOS v7(首选)保持一致,并尽可能兼容 v6。
  • 使用 print as-value、数组和 where 过滤器进行稳健查询。
  • 计划执行时,使用 Scheduler 并配置适当权限。
  • 关于收费、价格、平台等具体信息暂未提供。