Skill: RouterOS .rsc
Esta skill orienta a criação, edição e revisão de scripts RouterOS (.rsc) com padrões seguros e idempotentes, além de validação antes da importação.
Fluxo rápido
- •Defina objetivo e escopo do script.
- •Aplique padrões idempotentes (ver Referências).
- •Valide sintaxe e riscos com o linter (scripts/lint_rsc.py).
- •Teste import com
dry-runeon-error. - •Importe de forma controlada em produção.
Práticas essenciais
- •Preferir
find where ...+ condicionais antes deadd/set. - •Evitar políticas amplas em
/system script add policy=.... - •Usar
:onerrore:jobnamepara robustez e instância única. - •Nunca incluir comandos destrutivos (
system reset-configuration, etc.). - •Parametrizar e isolar escopos (
:localvs:global).
Validação e teste
- •Lint:
python scripts/lint_rsc.py caminho/do/script.rsc. - •Import seguro (RouterOS ≥ 7.16.x):
- •
import test.rsc verbose=yes dry-runpara encontrar múltiplos erros sem aplicar mudanças. - •
do { import test.rsc } on-error={ :put "Failure" }para capturar erro. - •
onerror e in={ import test.rsc } do={ :put "Failure - $e" }para mensagem detalhada.
- •
Referências (usar conforme necessário)
- •Linguagem e sintaxe: ver references/LANGUAGE.md
- •.rsc export/import,
dry-runeonerror: ver references/RSC_GUIDE.md - •Boas práticas de segurança e idempotência: ver references/SAFE_PRACTICES.md
- •Exemplos comuns e padrões: ver references/EXAMPLES.md
- •Regras do linter: ver references/LINTER_RULES.md
Observações
- •Scripts devem ser consistentes com RouterOS v7 (preferencial) e compatíveis com v6 onde possível.
- •Utilize
print as-value, arrays e filtroswherepara consultas robustas. - •Para execução programada, use Scheduler com permissões adequadas.