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?
Du kannst die Datei /tmp/pkg_upgrade.json überwachen.
Siehe auch https://forum.opnsense.org/index.php?topic=27123.msg132035#msg132035 (https://forum.opnsense.org/index.php?topic=27123.msg132035#msg132035)
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.
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
Vielen Dank! Funktioniert super! 8)
Funktioniert leider mit der Business-Version nicht (mehr)...
QuoteUPDATE_AVAILABLE: Current version: OPNsense 24.10.2_6, Available version: OPNsense 24.7.12_4
Sorry... Keine Kekse, keinen Support...
Ich gehe davon aus, du arbeitest nicht in der IT?
Nix persönliches. Allerdings "geht nicht" "funktioniert nicht", hilft nicht sonderlich beim Troubleshooten. Für mich funktioniert es noch bei der non business version.
Zudem schaue ich hier eher selten rein. Allerdings hätte ich vermutlich direkt helfen können, sofern ich eine hilfreiche Problembeschreibung bekommen hätte. Einfach mal drüber nachdenken ;)
@fastboot
Vielen Dank für dein Script. Nur ich bekomme es irgendwie nicht zum Laufen.
Im Logfile sind keinerlei Einträge hierzu, daher für mich sehr schwierig den Grund herauszufinden. Ich versuche es mal mit Screenshots, vielleicht kann mir so geholfen werden.
Installiert ist 25.7.1 und wenn ich das Script auf der Konsole ausführe, wird mir auch die neue Version angezeigt.
Du hast hier gepostet:
Quote from: fastboot on May 27, 2025, 09:49:15 AMAs it seems the cronjob at 10PM did not work for me. For what ever reason. It was not executed every day at 10PM.... I changed the time to "90 cycles".
Not sure if anything has been changed with monit recently. At least this way it works again.
Wo bitte hast du die 90 Zyklen eingestellt? Und wann beginnt immer ein neuer Zyklus?
Sodele, Fehler gefunden - teils mein Fehler, teil etwas spezielles von Monit.
Also hier für die Nachwelt.
Mein Fehler war, dass ich als Absender und Empfänger die gleiche eMail-Adresse fälschlicherweise eingetragen hatte. Müssen natürlich zwei verschiedene Adressen sein.
In den Service-settings unter PollTime darf im Cron-style keine einzelne Minute spezifiziert sein, sondern es muss eine Minuten-Range eingetragen werden.
Siehe unter Limitations: https://mmonit.com/monit/documentation/monit.html#SERVICE-POLL-TIME (https://mmonit.com/monit/documentation/monit.html#SERVICE-POLL-TIME)
z.B.
0-5 6 * * 0
Jeden Sonntag von 6:00 bis 6:05 Uhr überprüfen - so läuft das Script zwischen 2 bis 3 Mal durch in dieser Zeit.
Btw, eine gute Idee ist, unter General Settings unter LogFile "syslog" einzutragen, um in Services/Monit/LogFile zu sehen, ob überhaupt was geschieht.
So sieht das Ergebnis heute aus:
2025-08-31T06:05:04
Error
monit
'OPNsense_Update_Check' status failed (1) -- UPDATE_AVAILABLE: Current version: OPNsense 25.7.1_1, Available version: OPNsense 25.7.2
2025-08-31T06:03:03
Error
monit
'OPNsense_Update_Check' status failed (1) -- UPDATE_AVAILABLE: Current version: OPNsense 25.7.1_1, Available version: OPNsense 25.7.2
Funktioner das Script bei der Aktuellen Version noch?
Danke und Grüße Robert
Quote from: no_Legend on March 05, 2026, 10:51:29 AMFunktioner das Script bei der Aktuellen Version noch?
JUP, bin allerdings noch auf Version 25.7.10 und noch nicht auf 26.x.x
Script überprüft immer nur Sonntags zwischen 06:00 und 06:05 Uhr.
Program 'OPNsense_Update_Check'
status Status failed
monitoring status Waiting
monitoring mode active
on reboot start
last exit value 1
last output UPDATE_AVAILABLE: Current version: OPNsense 25.7.10, Available version: OPNsense 25.7.11_9
data collected Sun, 01 Mar 2026 06:04:57
Program 'OPNsense_Update_Check'
status OK
monitoring status Waiting
monitoring mode active
on reboot start
last exit value 0
last output NO_UPDATE: Current version: 26.1.3
data collected Thu, 05 Mar 2026 22:27:06
Quote from: layerbreak on August 30, 2025, 01:59:38 PMMein Fehler war, dass ich als Absender und Empfänger die gleiche eMail-Adresse fälschlicherweise eingetragen hatte. Müssen natürlich zwei verschiedene Adressen sein.
Das ist zumindest inzwischen nicht mehr so, bzw. falls doch, ein Problem mit Deinem speziellen Mailprovider. Ich schicke mir seit Jahren erfolgreich selber Mails mit allen möglichen Kisten und Diensten...
Vorstellen könnte ich mir aber, daß Du bei der ursprünglichen Senderadresse erst "Zugriff für externe Programme erlauben" irgendwo ganz tief versteckt in den Optionen vom Mailkonto aktivieren müßtest, damit das funktioniert.
Quote from: no_Legend on March 05, 2026, 10:51:29 AMFunktioner das Script bei der Aktuellen Version noch?
Sodele, jetzt kann ich deine Antwort beantworten.
Ja, auch mit der neuen Version 26.x funktioniert das Script und auch die eMail-Benachtrichtigung.
Program 'OPNsense_Update_Check'
status Status failed
monitoring status Waiting
monitoring mode active
on reboot start
last exit value 1
last output UPDATE_AVAILABLE: Current version: OPNsense 26.1.3, Available version: OPNsense 26.1.4
data collected Sun, 15 Mar 2026 06:04:21
und auch die email-Benachrichtigung geht
Betreff: OPNSense - neue Version vorhanden
Status failed Service: OPNsense_Update_Check
Date: Sun, 15 Mar 2026 06:02:20
Action: alert
Host: OPNsense.mutter.internal
Bechreibung: status failed (1) -- UPDATE_AVAILABLE: Current version: OPNsense 26.1.3, Available version: OPNsense 26.1.4
Gruessle
Monit von OPNSense
UPDATE_AVAILABLE: Current version: OPNsense 26.4.1, Available version: OPNsense 26.1.10. Irgendwie funktioniuert es nicht mehr..
Quote from: Most on June 19, 2026, 05:00:00 PMUPDATE_AVAILABLE: Current version: OPNsense 26.4.1, Available version: OPNsense 26.1.10. Irgendwie funktioniuert es nicht mehr..
Mit Verlaub: So sollte man keinen Support erwarten.
Ein einzelnes "funktioniert nicht mehr" zusammen mit einer Ausgabe, die offensichtlich zwei unterschiedliche Versionsstände zeigt, ist keine brauchbare Fehlerbeschreibung. Business Version != FREE Version
Wenn man Hilfe möchte, sollte man zumindest die verwendeten Befehle, deren Ausgaben und die eigene Umgebung nennen. Damit hätte sich innerhalb weniger Sekunden erkennen lassen, was tatsächlich verglichen wird.
Mein Script macht genau das, wofür es geschrieben wurde. Aus der geposteten Ausgabe allein lässt sich weder ein Fehler im Script noch ein Defekt nachweisen. Sie zeigt lediglich, dass die installierte Version und die vom abgefragten Repository gelieferte Version voneinander abweichen.
Wer einen Fehler vermutet, sollte zunächst nachvollziehen, wie die Ausgabe zustande kommt, bevor er pauschal behauptet, etwas würde nicht mehr funktionieren. Manchmal sagt meine Glaskugel auch einfach: Nein.
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PKG_NAME="opnsense"
CURRENT_VERSION=$(opnsense-version 2>/dev/null | awk '{print $2}')
AVAILABLE_VERSION=$(pkg rquery '%v' "$PKG_NAME" 2>/dev/null)
if [ -z "$CURRENT_VERSION" ]; then
echo "UNKNOWN: Could not determine installed OPNsense version"
exit 3
fi
if [ -z "$AVAILABLE_VERSION" ]; then
echo "UNKNOWN: Could not determine repository version for $PKG_NAME"
exit 3
fi
if [ "$CURRENT_VERSION" = "$AVAILABLE_VERSION" ]; then
echo "NO_UPDATE: Current version: OPNsense $CURRENT_VERSION"
exit 0
fi
# FreeBSD/pkg-kompatibler Versionsvergleich
if pkg version -t "$CURRENT_VERSION" "$AVAILABLE_VERSION" >/dev/null 2>&1; then
CMP=$(pkg version -t "$CURRENT_VERSION" "$AVAILABLE_VERSION")
case "$CMP" in
"<")
echo "UPDATE_AVAILABLE: Current version: OPNsense $CURRENT_VERSION, Available version: OPNsense $AVAILABLE_VERSION"
exit 1
;;
">")
echo "VERSION_MISMATCH: Installed OPNsense $CURRENT_VERSION is newer than repository version OPNsense $AVAILABLE_VERSION"
exit 2
;;
"=")
echo "NO_UPDATE: Current version: OPNsense $CURRENT_VERSION"
exit 0
;;
*)
echo "UNKNOWN: Unexpected comparison result: $CMP"
exit 3
;;
esac
else
echo "UNKNOWN: Version comparison failed: installed=$CURRENT_VERSION repository=$AVAILABLE_VERSION"
exit 3
fiWichtiger Hinweis zur Nutzung:Dieses Script wird auf eigene Gefahr von Anwendern, Anwenderinnen, Anwendenden, Anwender*innen, Anwender und sonstigen scriptnutzenden Personen verwendet. Für Schäden an Hardwarern, Softwareinnen, Firmwarenden, Netzwerkern, Netzwerkenden oder sonstigen digital arbeitenden Wesen wird keinerlei Haftung übernommen.
Bitte konsultieren Sie vor der Verwendung Ihren Arzt, Ihre Ärztin, Ihr Ärztendenwesen, Ihren Apotheker, Ihre Apothekerin, Ihre Apothekerndenfachkraft, Ihren Tierpfleger, Ihre Tierpflegerin, Ihre Tierpflegefachperson sowie gegebenenfalls Ihren Systemadministrator, Ihre Systemadministratorin oder Ihre systemadministrierenden Fachkräfte.
Sollten nach der Nutzung Symptome wie "geht nicht", "funktioniert nicht", "habe nichts geändert", "ist plötzlich kaputt", "war gestern noch gut" oder "das Script ist schuld" auftreten, wenden Sie sich bitte umgehend an qualifizierte Troubleshooter, Troubleshooterinnen, Troubleshootende oder anderweitig fehlersuchende Personen.
Mit der Ausführung erklären Sie sich einverstanden, dass Sie die Ausgabe lesen, verstehen, interpretieren und gegebenenfalls darüber nachdenken. Sollten Sie dazu nicht in der Lage sein, lassen Sie das Script bitte durch eine fachkundige Person, Fachkraft, Fachperson oder fachkraftausübende Person Ihres Vertrauens bedienen.