MikroTik-Skript, das nach einem Update für RouterOS sucht. Wenn ein Systemupdate gefunden wird, sendet es eine Nachricht an Telegram. Andernfalls wird ein Protokoll über das Fehlen von Updates geschrieben.
? For the script to work, you must have a Telegram bot Token and a chat ID or a personal ID. Creating a Telegram bot and getting the required IDs is not the topic of this article.
Die Telegrammnachricht enthält:
- Gerätekennung;
- eine Nachricht, die die Aktualisierungsversion angibt;
- Link zur offiziellen Website mit einer Beschreibung der Änderungen;
- Informationen zur aktuellen Geräteversion und zum Release-Baum.
Artikel in anderen Sprachen:
?? – MikroTik Scripts: Check RouterOS Update
?? – Scripts MikroTik: Verifique la actualización de RouterOS
?? – MikroTik Скрипты: Проверка обновления RouterOS
?? – Scripts MikroTik: vérifier la mise à jour de RouterOS
?? – MikroTik-scripts: Controleer op RouterOS-updates
Gerät Identity ändern
Ändern Sie die Geräte-ID, um besser zu verstehen, welches Gerät die Nachricht sendet.
[System] -> [Identity]
oder
/system identity set name="WhiteHouseMikroTik"
Erstellen Sie ein Skript zum Überprüfen des RouterOS-Updates
Die folgenden Berechtigungen sind erforderlich, damit das Skript das RouterOS-Update überprüfen kann: read, write, policy, test.
[System] -> [Scripts] -> [+] -> [Name: CheckUpdate] -> [Policy: read, write, test, policy]
Skriptcode:
# 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;
Wenn keine Updates gefunden werden, druckt das Skript eine Nachricht in das Protokoll. So können Sie verstehen, dass das Skript erfolgreich funktioniert.
Fügen Sie den Skriptstart zum Zeitplan hinzu
[System] -> [Schedule] -> [+] -> [Name:CheckUpdate] – > [Start Time: 07:00:00] -> [Interval: 1d 00:00:00] -> [Policy: read, write, policy, test]
Skriptcode:
/system script run CheckUpdate
Jetzt wird das Update eines Geräts nicht vergessen, jedes MikroTik-Gerät wird täglich überprüft und erinnert Sie an das Update!
? In diesem Artikel wurde erläutert, wie Sie RouterOS-Updates überprüfen und eine Nachricht an Telegram senden. Ich hoffe, Sie können jetzt RouterOS-Versionen auf MikroTik-Geräten steuern. Wenn Sie jedoch beim Einrichten auf Probleme stoßen, können Sie diese gerne in die Kommentare eintragen. Ich werde versuchen zu helfen.
Das Skript wird überprüft: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (stable).