Scripts MikroTik: Verifique la actualización de RouterOS

Script MikroTik que comienza a buscar una actualización para RouterOS. Si se encuentra una actualización del sistema, envía un mensaje a Telegram, de lo contrario, escribe un registro sobre la ausencia de actualizaciones.

🔔 Para que el script funcione, debe tener un token de bot de Telegram y una identificación de chat o una identificación personal. Crear un bot de Telegram y obtener las identificaciones requeridas no es el tema de este artículo.

El mensaje de Telegram contiene:

  1. identificador de dispositivo;
  2. un mensaje que indica la versión de actualización;
  3. enlace al sitio web oficial con una descripción de los cambios;
  4. información sobre la versión actual del dispositivo y el árbol de lanzamiento.
Mensaje de Telegram solicitando actualizar RouterOS
Ejemplo de mensajes de Telegram de WhiteHouseMikroTik

Artículo en otros idiomas:
🇺🇸 – MikroTik Scripts: Check RouterOS Update
🇷🇺 – MikroTik Скрипты: Проверка обновления RouterOS
🇫🇷 – Scripts MikroTik: vérifier la mise à jour de RouterOS
🇩🇪 – MikroTik-Skripte: Auf RouterOS-Update prüfen

Cambiar la Identity del dispositivo

Cambie la ID del dispositivo para comprender mejor qué dispositivo envía el mensaje.

[System] -> [Identity]

o

/system identity set name="WhiteHouseMikroTik"

Cree un script para verificar la actualización de RouterOS

Para que el script funcione, «Check RouterOS Update» requiere solo un permiso: read.

[System] -> [Scripts] -> [+] -> [Name: CheckUpdate] -> [Policy: read]

Código de secuencia de comandos:

# 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;
Agregar un script para verificar la actualización de RouterOS al programador de tareas MikroTik

Si no se encuentran actualizaciones, el script imprime un mensaje en el registro. Para que pueda comprender que el script está funcionando correctamente.

Agregar inicio de script para programar

[System] -> [Schedule] -> [+] -> [Name:CheckUpdate] – > [Start Time: 07:00:00] -> [Interval: 1d 00:00:00] -> [Policy: read, write, policy, test]

Código de secuencia de comandos:

/system script run CheckUpdate
Agregar un script para verificar la actualización de RouterOS al programador de tareas MikroTik

Ahora no se olvidará la actualización de ningún dispositivo, ¡cada dispositivo MikroTik se revisará diariamente y le recordará que actualice!


En este artículo se discutió cómo verificar las actualizaciones de RouterOS y enviar un mensaje a Telegram. Espero que ahora puedas controlar las versiones de RouterOS en dispositivos MikroTik. Sin embargo, si tiene algún problema durante la configuración, no dude en escribir en los comentarios. Trataré de ayudar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *