MikroTik Скрипты: Проверка обновления RouterOS

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Скрипт позволяет выполнить проверку на наличие обновлений для RouterOS и в случае их обнаружения отправки уведомления в Telegram.

Чтобы скрипт работал, у вас должен быть токен бота Telegram и идентификатор чата или личный идентификатор. Создание бота Telegram и получение необходимых идентификаторов — не тема этой статьи.

Сообщение Telegram содержит:

  1. идентификатор устройства;
  2. сообщение с указанием версии обновления;
  3. ссылка на официальный сайт с описанием изменений;
  4. информация о текущей версии устройства и дереве выпусков.
Пример сообщений в Telegram

Изменить идентификацию устройства

Измените идентификатор устройства, чтобы лучше понять, какое устройство отправляет сообщение.

[System] -> [Identity] или /system identity set name=»WhiteHouseMikroTik»

Создайте скрипт для проверки обновлений RouterOS

Скрипту для Проверки обновления RouterOS требуются следующие разрешения : чтение, запись, политика, проверка.

[System] -> [Scripts] -> [+] -> [Name: CheckUpdate] -> [Policy: read, write, test, policy]

Код скрипта:

# Func: Telegram send message
:local TGSendMessage do={
    :local tgUrl "https://api.telegram.org/bot$Token/sendMessage?chat_id=$ChatID&text=$Text&parse_mode=html&disable_web_page_preview=True";
    /tool fetch http-method=get url=$tgUrl keep-result=no;
}

# Constants
:local TelegramBotToken "987654321:AAFJIVTAWodBwzGX2CLne6-PK4RFNSy-8OY";
:local TelegramChatID "987654321";
:local DeviceName [/system identity get name];
:local TelegramMessageText "\F0\9F\9F\A2 <b> $DeviceName:</b>  ";


# Check Update
:local MyVar [/system package update check-for-updates as-value];
:local Chan ($MyVar -> "channel");
:local InstVer ($MyVar -> "installed-version");
:local LatVer ($MyVar -> "latest-version");


:if ($InstVer = $LatVer) do={
    :set TelegramMessageText  ($TelegramMessageText . "System is already up to date");
} else={
    
    :set TelegramMessageText  "$TelegramMessageText New version $LatVer is available! <a href=\"https://mikrotik.com/download/changelogs\">Changelogs</a>. [Installed version $InstVer, chanell $Chan].";

    $TGSendMessage Token=$TelegramBotToken ChatID=$TelegramChatID Text=$TelegramMessageText;
}

:log info $TelegramMessageText;

Если обновлений не найдено, сценарий выводит сообщение в журнал, так, вы можете понять, что скрипт успешно работает.

Добавить запуск скрипта в расписание

[System] -> [Schedule] -> [+] -> [Name:CheckUpdate] – > [Start Time: 07:00:00] -> [Interval: 1d 00:00:00] -> [Policy: read, write, policy, test] /system script run CheckUpdate Теперь обновление любого устройства не будет забыто, каждое устройство MikroTik будет проверяться ежедневно и напоминать вам об обновлении!

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Добавить комментарий