Eigene Cronjobs auf einer UniFi UDM Pro können nach einem Neustart oder UniFi-OS-Update verschwinden.
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
0 CommentsClose Comments

Leave a comment

AncoraThemes © Copyright 2026. All Rights Reserved.