1
0
mirror of https://github.com/netscripor/update_mikrotik.git synced 2025-10-30 23:37:42 +02:00
2025-06-23 15:56:10 +03:00
2025-06-23 15:56:10 +03:00
2025-06-22 20:31:17 +03:00
2025-06-22 20:31:43 +03:00

📦 MikroTik Batch Updater

Автоматизированный скрипт для:

  • получения информации об установленных обновлениях MikroTik RouterOS
  • установки новых пакетов
  • обновления прошивки RouterBOARD
  • управления перезагрузками после обновления

Подходит для одиночных устройств и массового обновления из списка.


⚙️ Зависимости

Убедись, что у тебя установлены:

pip install netmiko colorama

🗂 Структура

  • mikrotik_update.py — основной скрипт
  • mikrotik_update.log — лог работы (создаётся автоматически)
  • файл со списком IP (опционально) — по одному IP в строке

🛠 Поддерживаемые режимы

1. Информационный режим (gather)

Проверка текущей версии RouterOS и наличия обновлений:

python3 mikrotik_update.py --mode gather --ip 192.168.88.1 --user admin

Или по списку:

python3 mikrotik_update.py --mode gather --file ip_list.txt --user admin

2. Обновление (upgrade)

Обновляет пакеты, прошивку RouterBOARD и выполняет перезагрузку при необходимости:

python3 mikrotik_update.py --mode upgrade --ip 192.168.88.1 --user admin

Массово:

python3 mikrotik_update.py --mode upgrade --file ip_list.txt --user admin

🔐 Аутентификация

При запуске будет запрошен пароль:

Password:

📑 Примеры вывода

[2025-06-20 17:24:30] 10.111.1.3 — Доступно обновление до 6.49.18. Устанавливаю...
[2025-06-20 17:24:30] 10.111.1.3 — Команда подтверждена. Ожидание перезагрузки...
[2025-06-20 17:26:00] 10.111.1.3 — Устройство снова в сети
[2025-06-20 17:26:01] 10.111.1.3 — Требуется RouterBOARD upgrade: 6.49.13 → 6.49.18
[2025-06-20 17:26:05] 10.111.1.3 — RouterBOARD upgrade выполнен. Отправляю команду на перезагрузку...

🔄 Что делает скрипт

Этап Действие
1 Подключается через SSH (Netmiko)
2 Проверяет /system package update check-for-updates
3 При наличии обновлений — запускает установку
4 При необходимости — подтверждает y
5 Ждёт возврата устройства после перезагрузки (до 5 минут)
6 Проверяет /system routerboard print
7 Если upgrade-firmware > current-firmware, делает upgrade и перезагрузку

🔒 Безопасность

  • Все логины и пароли вводятся вручную и не сохраняются
  • Устройства обновляются по очереди, с паузой между ними
  • Лог сохраняется в mikrotik_update.log (удобно для аудита)

📌 Советы

  • Убедись, что SSH доступ разрешён на всех целевых MikroTik
  • Скрипт не удаляет старые логи — можно ротацию настроить вручную
  • При ошибках смотри в mikrotik_update.log

📁 Пример файла ip_list.txt

10.111.1.2
10.111.1.3
192.168.88.1

⚠️ Сейчас скрипт на этапе боевого тестирования на RO v6. Уже обкатан на ~20 точках в проде — работает стабильно, но ещё шлифуется.

📡 Подпишись и поддержи проект:

🔗 GitHub: github.com/netscripor 💰 Boosty: boosty.to/netscripor ✈️ Telegram-канал: t.me/netscripor

️ Поддержи проект звездой 🛠 Нашёл баг или есть идея? Создай Issue!

Description
Автоматизированный скрипт для: - получения информации об установленных обновлениях MikroTik RouterOS - установки новых пакетов - обновления прошивки RouterBOARD - управления перезагрузками после обновления Подходит для одиночных устройств и массового обновления из списка.
Readme 36 KiB
Languages
Python 100%