Das Paket unattended-upgrades
ist ein Bestandteil von Debian-basierten Linux-Distributionen und dient der automatischen Installation von Sicherheitsupdates
und wichtigen Paketaktualisierungen im Hintergrund. Es ist insbesondere dazu geeignet, die Aktualität eines Systems sicherzustellen, ohne dass der Benutzer manuell eingreifen muss.
Das Paket unattended-upgrades
durchsucht regelmäßig die Paketquellen nach neuen Updates und installiert diese automatisch. Die Konfiguration des Pakets erlaubt die Festlegung, ob lediglich sicherheitsrelevante Updates installiert werden sollen, oder ob auch andere Arten von Updates, je nach Bedarf und Präferenz, installiert werden sollen.
Quick Configuration
Installation des Dienst unanttended-upgrades:
$ sudo apt install unattended-upgrades
Konfiguration der automatischen Updates:
$ sudo dpkg-reconfigure --priority=low unattended-upgrades
Neustart der Komponenten:
$ sudo systemctl restart unattended-upgrades
Installation (Default)
Der Ubuntu
-Installer bietet die Installation und Aktivierung des unattended-upgrade
-Dienstes bereits während der Installation des Systems an:
Auf Debian
-Systemen muss der Dienst nachträglich installiert werden. Ob der Dienst bereits installiert ist, kann mit folgendem Kommando überprüft werden:
$ systemctl status unattended-upgrades
Unit unattended-upgrades.service could not be found.
Folgendes Kommando installiert das Paket unattended-upgrades
:
$ sudo apt install unattended-upgrades apt-listchanges
Damit ist das Paket unattended-upgrades auf Ihrem System installiert und der Dienst aktiviert:
$ systemctl status unattended-upgrades
● unattended-upgrades.service - Unattended Upgrades Shutdown
Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; preset: enabled)
Active: active (running) since Fri 2024-05-31 11:50:07 CEST; 7s ago
Docs: man:unattended-upgrade(8)
Main PID: 1875 (unattended-upgr)
Tasks: 2 (limit: 2265)
Memory: 13.8M
CPU: 81ms
CGroup: /system.slice/unattended-upgrades.service
└─1875 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
Konfiguration (Default)
Autoupdate aktivieren
Um die automatischen Updates grundlegend zu konfigurieren und zu aktivieren führen Sie folgendes Kommando aus:
$ sudo dpkg-reconfigure --priority=low unattended-upgrades
Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version
Die Datei /etc/apt/apt.conf.d/20auto-upgrades
steuert, wie oft unattended-upgrades verschiedene Aufgaben durchführt, einschließlich der Aktualisierung des Paket-Caches und der Installation von Updates. Folgende Optionen sind nach einer Standardkonfiguration aktiviert:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
Update-Package-Lists "1"
: Diese Einstellung sorgt dafür, dass die Paketlisten einmal täglich ("1"
) aktualisiert werden. Dies entspricht dem Befehlapt update
und stellt sicher, dass das System immer über die neuesten Informationen zu verfügbaren Paketen und Updates verfügt.
(0
= disabled)Unattended-Upgrade "1"
: Diese Einstellung sorgt dafür, dassunattended-upgrades
einmal täglich ("1"
) ausgeführt wird.unattended-upgrades
installiert automatisch verfügbare Updates aus den für diesen Prozess eingestelltenRepositories
.
(0
= disabled)
Repositories
Die Konfigurationsdateien des unattended-upgrades
-Dienstes befinden sich in /etc/apt/apt.conf.d
. Die Installation von unattended-upgrades
legt dort bereits eine Voreinstellung an. Die Datei /etc/apt/apt.conf.d/50unattended-upgrades
legt zunächst die Repositories fest:
Unattended-Upgrade::Origins-Pattern { // "origin=Debian,codename=${distro_codename}-updates"; // "origin=Debian,codename=${distro_codename}-proposed-updates"; "origin=Debian,codename=${distro_codename},label=Debian"; "origin=Debian,codename=${distro_codename},label=Debian-Security"; "origin=Debian,codename=${distro_codename}-security,label=Debian-Security"; }; Unattended-Upgrade::Package-Blacklist { };
"-updates"
: Das-updates
Repository wird speziell für dringende und kritische Updates verwendet, die nicht bis zum nächsten regulären Punkt-Release warten können."-proposed-updates"
: Das-proposed-updates
Repository enthält vorgeschlagene Updates, die für das nächste Punkt-Release getestet werden. Diese Updates sind noch nicht vollständig freigegeben und könnten noch in einer Testphase sein, daher werden sie standardmäßig nicht aktiviert, um die Stabilität des Systems zu gewährleisten.",label=Debian"
: Umfasst alle offiziell veröffentlichten Updates, einschließlich neuer Paketversionen und allgemeiner Fehlerbehebungen.",label=Debian-Security"
: Dieses Repository bezieht sich auf Sicherheitsupdates aus dem speziell als Sicherheitsrepository gekennzeichneten Haupt-Repository der aktuellen Debian-Distribution. Diese Updates werden als Teil des Haupt-Veröffentlichungskanals mit dem Label "Debian-Security
" bereitgestellt.- "
-security,label=Debian-Security
": Hierbei handelt es sich um ein separates Repository, das speziell für Sicherheitsupdates eingerichtet wurde und das Suffix-security
im Codenamen trägt. Dieses Repository ist speziell dafür vorgesehen, Sicherheitsupdates unabhängig vom allgemeinen Repository bereitzustellen.
Neustart von unattended-upgrades
Führen Sie zum Abschluss der Konfiguration eines Neustart des unattended-upgrades
Dienst durch, um Ihre Einstellungen zu übernehmen:
$ sudo systemctl restart unattended-upgrades
Steuern der Timer
unattended-upgrades
verwendet standardmäßig zwei systemd
-Timer: apt-daily.timer
und apt-daily-upgrade.timer
. Diese Timer legen fest, wann die Update- und Upgrade-Prozesse gestartet werden.
Anzeige des aktuellen Status der Zeitintervalle für die Aktualisierung (Update Timer):
$ sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2024-05-31 23:41:20 UTC 10h Tue 2024-05-28 19:17:19 UTC - apt-daily.timer apt-daily.service
Sat 2024-06-01 06:18:23 UTC 16h Fri 2024-05-31 13:34:18 UTC 3min 18s ago apt-daily-upgrade.timer apt-daily-upgrade.service
Wenn Sie andere Zeiten benötigen, zum Beispiel um Wartungs- oder Backup-Zeiten zu vermeiden, können Sie die Zeiten mit dem systemctl edit
Kommando benutzerdefiniert einstellen:
(Beispiel)
$ sudo systemctl edit apt-daily-upgrade.timer
### Editing /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf ### Anything between here and the comment below will become the contents of the drop-in file [Timer] OnCalendar=*-*-* 14:15 RandomizedDelaySec=60m Persistent=true ### Edits below this comment will be discarded ### /usr/lib/systemd/system/apt-daily-upgrade.timer # [Unit] # Description=Daily apt upgrade and clean activities # After=apt-daily.timer # # [Timer] # OnCalendar=*-*-* 6:00 # RandomizedDelaySec=60m # Persistent=true # # [Install] # WantedBy=timers.target
Starten Sie im Anschluss den Daemon
und die APT Timer
neu:
$ sudo systemctl daemon-reload
$ sudo systemctl restart apt-daily.timer
$ sudo systemctl restart apt-daily-upgrade.timer
Überprüfen Sie die Konfiguration:
$ sudo systemctl cat apt-daily-upgrade.timer
# /usr/lib/systemd/system/apt-daily-upgrade.timer [Unit] Description=Daily apt upgrade and clean activities After=apt-daily.timer [Timer] OnCalendar=*-*-* 6:00 RandomizedDelaySec=60m Persistent=true [Install] WantedBy=timers.target # /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf [Timer] OnCalendar=*-*-* 14:15 Persistent=true
Automatischer Neustart
In hochautomatisierten Umgebungen kann es sinnvoll sein, die Systeme regelmäßig automatisch neu zu starten. Dies stellt sicher, dass Updates eingespielt werden, die einen Neustart erfordern, wie z.B. Kernel-Updates. Der Neustart kann in der unattended-upgrades
Konfigurationsdatei /etc/apt/apt.conf.d/50unattended-upgrades
konfiguriert werden. Kommentieren Sie dazu die folgenden Zeilen aus und setzen Sie Automatic-Reboot
auf true
:
Unattended-Upgrade::Automatic-Reboot "true"; Unattended-Upgrade::Automatic-Reboot-WithUsers "true"; Unattended-Upgrade::Automatic-Reboot-Time "19:00";
Diese Einstellungen stellen sicher, dass bei Vorhandensein der Datei /var/run/reboot-required
das System zur angegebenen Zeit neu gestartet wird, auch wenn ein Benutzer am System angemeldet ist.
Debug
Um die Konfiguration zu testen, kann unattended-upgrade
auf der Konsole ausgeführt werden. Das Skript akzeptiert mehrere Optionen:
--debug
: Führtunattended-upgrades
durch und schreibt detaillierte Debug-Informationen nach/var/log/unattended-upgrades/unattended-upgrades.log
--dry-run
: Simuliert den Prozess und nimmt keine Änderungen am System vor.
$ sudo unattended-upgrade --dry-run
Logs
/var/log/unattended-upgrades/unattended-upgrades-dpkg.log
/var/log/unattended-upgrades/unattended-upgrades.log
/var/log/unattended-upgrades/unattended-upgrades-shutdown.log