Zum Inhalt der Seite gehen


Wie monitored ihr eigentlich, ob es eine neue Firmware für den Heimrouter gibt?
Ich so:

❯ ssh router ':local c [/system routerboard get current-firmware]; :local u [/system routerboard get upgrade-firmware]; :local cdot [:find $c "."]; :local udot [:find $u "."]; :local cnum ([:tonum [:pick $c 0 $cdot]]*1000 + [:tonum [:pick $c ($cdot+1) [:len $c]]]); :local unum ([:tonum [:pick $u 0 $udot]]*1000 + [:tonum [:pick $u ($udot+1) [:len $u]]]); :if ($cnum=$unum) do={:put "Firmware is up to date"} else={:if ($unum>$cnum) do={:put ("Upgrade available: " . $c . " → " . $u)} else={:put ("Current firmware (" . $c . ") is newer than upgrade (" . $u . ")")}}'
Firmware is up to date

Daraus habe ich mir dann einen UserParameter in Zabbix gebaut, der ein Item befüttert, das dann im Falle einer neuen Firmware einen Trigger feuert, der mir denn eine Telegram-Nachricht schickt.
Die KI hat geholfen, hoffentlich korrekt - es ist nicht so, daß ich das Skript verstehen würde ;-)

#Zabbix #Mikrotik #RouterOS

Roland Häder🇩🇪 hat dies geteilt.

Als Antwort auf Rainer "friendica" Sokoll

t.me/MikrotikNews oder @mikrotik folgen.

#mikrotik

Als Antwort auf Rainer "friendica" Sokoll

Also ich spiegle[1] für mich privat die Software-Downloads und lasse mir eine Mail schreiben, wenn es was neues gab. Und: Meinen Heim-Router habe ich als kritisches System eingestuft. D.h. ich warte mit Software-Updates mindestens eine oder zwei Wochen nach einem neuen Release.

Die KI hat aber versagt, wenn es Dir um Software und nicht Bios-Updates geht. /system/routerboard current-firmware und upgrade-firmware vergleicht nur das Bios. Angenommen, Du hast

current-firmware: 7.19.3
upgrade-firmware: 7.19.4

dann bedeutet das: Dein Bios (Firmware) ist auf 7.19.3. Nachdem Du aber schon ein Update auf Betriebssystem-Version 7.19.4 gemacht hast, ist das aktuellste Bios schon auf dem Router, das Bios ist aber noch nicht aktualisiert. Du braucht jetzt noch ein

/system/routerboard/upgrade

für das Bios-Update. Wenn Du das nach einem OS-Update nicht immer von Hand machen willst, dann kannst Du auch

/system/routerboard/settings/set auto-upgrade=yes

einstellen.

Ich würde evtl. schauen, ob

/system/package/update/check-for-updates

was liefert.

[1] isigassaq.routing-the-world.de…

Als Antwort auf Sebastian Inacker

Keine Sorge, auch das ist verdrahtet:
❯ ssh router '/system package update check-for-updates; :put [/system package update get status]'
            channel: stable
  installed-version: 7.19.4
             status: finding out latest version...

            channel: stable
  installed-version: 7.19.4
     latest-version: 7.19.4
             status: System is already up to date

System is already up to date
Als Antwort auf Rainer "friendica" Sokoll

Oder als "0" oder "1".

ssh router ':local status ([/system/package/update/check-for-updates as-value]->"status"); :if ($status = "System is already up to date") do={:put 0} else={:put 1}'

(Ja, mir war langweilig ;-). )