Mit
unifi-common lässt sich der gewünschte Cronjob bei jedem Boot automatisch wiederherstellen.
Ziel
In diesem Beispiel soll die UDM Pro täglich um 04:00 Uhr neu gestartet werden.
0 4 * * * /sbin/reboot
Cron-Ausdruck: 0 4 * * * bedeutet: jeden Tag um 04:00 Uhr.
1. unifi-common installieren
Für persistente Boot-Scripts verwenden wir unifi-common.
curl -fsL "https://raw.githubusercontent.com/unifi-utilities/unifi-common/HEAD/remote_install.sh" | /bin/bash
Anschließend prüfen wir, ob der Boot-Service vorhanden und aktiviert ist:
systemctl status udm-boot
Ein funktionierender Dienst sieht ungefähr so aus:
● udm-boot.service - UniFi Common
Loaded: loaded (/etc/systemd/system/udm-boot.service; enabled)
Active: active (exited)
2. Boot-Script erstellen
Das Script unter /data/on_boot.d/ wird bei jedem Systemstart ausgeführt.
nano /data/on_boot.d/50-cron.sh
Folgenden Inhalt einfügen:
#!/bin/bash
CRON_LINE="0 4 * * * /sbin/reboot"
(crontab -l 2>/dev/null | grep -v '/sbin/reboot'; echo "$CRON_LINE") | crontab -
Das Script entfernt zunächst vorhandene /sbin/reboot-Einträge und trägt anschließend genau einen neuen Cronjob ein.
Dadurch entstehen auch nach mehreren Neustarts keine doppelten Einträge.
3. Script ausführbar machen
chmod +x /data/on_boot.d/50-cron.sh
Die Dateirechte lassen sich prüfen mit:
stat /data/on_boot.d/50-cron.sh
Erwartet wird beispielsweise:
Access: (0755/-rwxr-xr-x)
4. Boot-Mechanismus testen
Für den Test ist kein kompletter Neustart der UDM Pro notwendig.
systemctl restart udm-boot
Danach den Status kontrollieren:
systemctl status udm-boot
Im Log sollte folgende Zeile erscheinen:
udm-boot.service: running /data/on_boot.d/50-cron.sh
Erfolgreich: Wenn diese Meldung erscheint, wurde das eigene Boot-Script ausgeführt.
5. Cronjob kontrollieren
crontab -l
Am Ende sollte folgender Eintrag stehen:
0 4 * * * /sbin/reboot
6. Boot-Verzeichnis prüfen
ls -la /data/on_boot.d/
Beispiel:
-rwxr-xr-x 1 root root 130 Oct 1 10:53 50-cron.sh
Warum nicht einfach crontab -e?
Ein direkt über crontab -e eingetragener Job funktioniert zunächst problemlos.
UniFi OS kann eigene Systemänderungen jedoch bei Reboots oder Firmware-Updates überschreiben.
Deshalb wird der Cronjob bei jedem Start automatisch neu eingetragen.
Dafür verwenden wir unifi-common und das Verzeichnis /data/on_boot.d/.
Nach einem UniFi-OS-Update prüfen
systemctl status udm-boot
crontab -l
Wenn udm-boot aktiv ist und der Cronjob angezeigt wird, funktioniert die Konfiguration weiterhin.
Fazit
Mit unifi-common lässt sich eine UDM Pro um eigene persistente Boot-Scripts erweitern.
Der Cronjob wird nach jedem Systemstart automatisch wiederhergestellt.
0 4 * * * /sbin/reboot


