Expand mikrotik-api skill with common safe operation templates

This commit is contained in:
OpenClaw Assistant
2026-02-24 19:25:39 +00:00
parent 26b784ddb7
commit a1e3f217c8
2 changed files with 123 additions and 0 deletions

View File

@@ -52,6 +52,81 @@ python3 {baseDir}/scripts/routeros_api.py \
- Сейчас реализован plaintext API (8728). Для TLS/API-SSL нужен отдельный режим.
- Скрипт не делает бесконечный `listen`-цикл; он рассчитан на запрос-ответ.
## Готовые безопасные команды (типовые задачи)
### 1) Статус роутера
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /system/resource/print --proplist uptime,version,board-name,cpu-load,free-memory,total-memory
```
### 2) Список интерфейсов
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /interface/print --proplist .id,name,type,running,disabled,mtu
```
### 3) IP-адреса на интерфейсах
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /ip/address/print --proplist .id,address,interface,disabled
```
### 4) DHCP leases
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /ip/dhcp-server/lease/print --proplist .id,address,mac-address,host-name,status,server,last-seen
```
### 5) Маршруты по умолчанию
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /ip/route/print --proplist .id,dst-address,gateway,distance,active,disabled --query '?dst-address=0.0.0.0/0'
```
### 6) DNS-настройки
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /ip/dns/print --proplist servers,allow-remote-requests,cache-size,cache-used
```
### 7) Wi-Fi (legacy wireless)
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /interface/wireless/print --proplist .id,name,ssid,frequency,band,mode,disabled,running
```
### 8) Wi-Fi (wifiwave2)
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
print /interface/wifi/print --proplist .id,name,ssid,configuration.disabled,running
```
## Осторожно с изменениями
Перед командами `set/add/remove`:
1. Сними текущее состояние через `print`.
2. Проверь `.id` целевого объекта.
3. Применяй изменения по одной команде.
4. Сразу валидируй результат повторным `print`.
## Ссылки
- Основные заметки по протоколу: `references/routeros-api-notes.md`
- Практические шаблоны: `references/common-operations.md`

View File

@@ -0,0 +1,48 @@
# Common MikroTik API Operations
Этот файл — быстрый справочник по безопасным шаблонам.
## Read-only first
Всегда сначала делай read-only команды:
- `/system/resource/print`
- `/interface/print`
- `/ip/address/print`
- `/ip/route/print`
- `/ip/dhcp-server/lease/print`
Используй `.proplist`, чтобы не тянуть лишнее.
## Примеры изменения (только после подтверждения)
### Отключить интерфейс по .id
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
cmd /interface/set --attr .id=*1 --attr disabled=yes
```
### Включить интерфейс
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
cmd /interface/set --attr .id=*1 --attr disabled=no
```
### Добавить IP-адрес на интерфейс
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host <ip> --user <user> --password '<pass>' \
cmd /ip/address/add --attr address=192.168.50.1/24 --attr interface=bridge
```
## Валидация после изменения
После `set/add/remove` сразу выполнить соответствующий `print` и проверить, что:
- ожидаемое поле изменилось;
- нет `!trap`;
- роутер доступен.