Firmware Update Notification Monit

Started by xenon2008, April 22, 2024, 09:19:58 PM

Previous topic - Next topic
Hallo zusammen,

Ich habe in meiner OPNSense gesehen,dass man mittels CronJob auf neue Firmware Updates prüfen kann.
Nun hatte ich die Idee, bzw. mich gefragt, ob ich mir dann nicht via Monit eine Benachrichtigung schicken lassen kann?
weiß das jemand?
Bzw. könntet ihr mir das zeigen/erklären, was ich hier in Monit einstellen muss?

Danke &LG
xenon

Hallo,

hast du hierfür schon eine Lösung gefunden?


Zwar nen alter Fred. Aber ja, geht


cat /usr/local/bin/check_opnsense_update.sh
#!/bin/sh

# Aktuelle installierte Version abrufen
CURRENT_VERSION=$(opnsense-version)

# Verfügbare Version abrufen
AVAILABLE_VERSION=$(opnsense-update -c)

# Prüfen, ob die verfügbare Version leer ist
if [ -z "$AVAILABLE_VERSION" ]; then
    # Keine neue Version verfügbar
    echo "NO_UPDATE: Current version: $CURRENT_VERSION"
    exit 0
else
    # Neue Version verfügbar
    echo "UPDATE_AVAILABLE: Current version: $CURRENT_VERSION, Available version: $AVAILABLE_VERSION"
    exit 1
fi



Service Test Settings:
Name: check_opnsense_update
Condition: status != 0
Action: Alert

Service Settings:
Name: OPNsense_Update_Check
Type: custom
Path: /usr/local/bin/check_opnsense_update.sh
Tests: check_opnsense_update
Poll Time: 0 0 * * *
Note: for daily checks at 0:00

Alert Settings:
Recipient: e@mail.com
Events: status failed
Mail Format:
from: [FW@lalelu.com]
reply-to: [e@mail.com]
subject: Monit Alert -- $EVENT
message: $EVENT Service $SERVICE

Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION

Cheers,

Monit

Reminder: 3600



Cheers

Ich habe dein Script ausprobiert. Gibt mir aber aktuell (24.7.10 ist seit heute verfügbar) immer noch diesen Output: NO_UPDATE: Current version: OPNsense 24.7.9_1 (amd64)


Wie müsste das Script angepasst werden?
opnsense-update -c
liefert leider gar keinen Output.

December 03, 2024, 09:30:59 PM #5 Last Edit: December 03, 2024, 09:47:48 PM by fastboot
Danke für den Hinweis, dass eine neue Version rausgekommen ist.

Ja, Du hast Recht. Der Befehl "opnsense-update -c" gibt leider gar nichts aus. Hätte ich so nicht erwartet. Also vermutlich falsch interpretiert, oder er macht nicht was er soll.

Hier ein angepasstes Script. Damit funktioniert es.


Edit: Hatte nen Fehler noch drin. Und zwar wird bei dem output von opnsense-version mehr ausgegeben, als nur die Versionsnummer. Mit dem awk ist es fixed. Teste gerne mal.
Edit_2: Die echos kannst Du auskommentieren. Sind nur zum debuggen drin...
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# Aktuelle installierte Version abrufen und nur die Versionsnummer extrahieren
CURRENT_VERSION=$(opnsense-version | awk '{print $2}')

# Verfügbare Version aus dem Repository abrufen
AVAILABLE_VERSION=$(pkg rquery '%v' opnsense)

if [ "$CURRENT_VERSION" = "$AVAILABLE_VERSION" ]; then
    # Keine neue Version verfügbar
    echo "NO_UPDATE: Current version: $CURRENT_VERSION"
    exit 0
else
    # Update verfügbar
    echo "UPDATE_AVAILABLE: Current version: OPNsense $CURRENT_VERSION, Available version: OPNsense $AVAILABLE_VERSION"
    exit 1
fi