Diese Anleitung sollte für die Betriebssysteme DragonFlyBSD, FreeBSD und HardenedBSD funktionieren. Er deckt NUR Aktualisierungen/Upgrades von Paketen ab und wendet keine anderen Patches auf das Basissystem oder den Kernel an.
Wenn du FreeBSD 15.0-RELEASE oder höher verwendest, wird das Basissystem ebenfalls über pkg aktualisiert. Andernfalls musst du weiterhin auf freebsd-update zurückgreifen oder das System aus dem Quellcode kompilieren. Weitere Informationen findest du im offiziellen FreeBSD-Wiki oder im Handbuch.
HINWEIS: Alle Schritte, die auf dieser Seite dokumentiert sind, gehen davon aus, dass dein Server einen Tor (Bücke/Schutz/Exit) Relay-Dienst bereitstellt. Bitte beachte, dass während des hier dokumentierten automatischen Software-Update-Prozesses Dienste neu gestartet werden.
1. Erstelle das Update Script
Lass uns /root/bin/pkg-upgrade.sh für unser Setup verwenden. So muss es aussehen:
#!/bin/sh
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
RAND=$(jot -r 1 1980 5940)
ENV="BATCH=yes IGNORE_OSVERSION=yes"
sleep ${RAND}
env ${ENV} pkg update -q -f && \
env ${ENV} pkg upgrade -q -U -y --fetch-only && \
env ${ENV} HANDLE_RC_SCRIPTS=yes pkg upgrade -q -U -y
2. Plane einen cron Job
Für diesen speziellen Zeitplan entscheiden wir uns dafür, das Skript alle 0h00 (abhängig von deiner Zeitzone) laufen zu lassen und die Paketaktualisierung selbst auszulösen, abhängig vom Wert der Variable $RAND - es ist so konfiguriert, dass es einen Sleep zwischen 1980 und 5940 Sekunden (oder: 33 und 99 Minuten) erzeugt.
Weitere Informationen zur Verwendung von jot findest du hier – vielen Dank an unsere anonymen Cypherpunks. Passe das an deine Bedürfnisse an, falls es für dich besser geeignet ist.
# echo "0 0 * * * root /bin/sh /root/bin/pkg-upgrade.sh" > /etc/cron.d/pkg-upgrade
- Wenn du die geplante Ausführung des Update-Skripts ändern möchtest, konfiguriere deine Crontab-Einstellungen auf einen Wert, den du verwenden möchtest.
3. Starte cron neu
Starte schließlich den cron-Daemon neu, damit die Konfigurationsänderungen übernommen werden.
# service cron restart