Systemadministration · 9 min read · Jan 14, 2026
Automatische Updates mit unattended-upgrades auf Debian und Ubuntu

Linux-Versionen erhalten häufig Updates, und Sicherheitsupdates sollten umgehend installiert werden. Debian und Ubuntu verwenden das APT-System, und während es relativ einfach ist, alle ausstehenden Updates manuell zu installieren, kann es sein, dass der Administrator vergisst, dies zu tun, oder es vorzieht, nachts zu schlafen, anstatt nach Updates zu suchen. Dieser Artikel richtet sich hauptsächlich an Serverinstallationen.
Das manuelle Aktualisieren und Installieren von Paketen mit apt upgrade ist weiterhin möglich, wenn unattended-upgrades verwendet wird. Wenn ein Upgrade, das von unattended-upgrades gestartet wurde, gerade läuft, wenn apt über die Befehlszeile verwendet wird, informiert das apt-System den Benutzer, dass bereits eine Operation im Gange ist, und der Benutzer muss warten, bis sie abgeschlossen ist, bevor er mit der Eingabe von apt-Befehlen fortfahren kann.
Ein einfacher Weg für beschäftigte Administratoren
Installieren Sie unattended-upgrades, überprüfen Sie, ob es aktiviert ist, und überwachen Sie deren Funktion über Protokolldateien.
apt install unattended-upgradesdpkg-reconfigure -plow unattended-upgradesDer Befehl dpkg-reconfigure zeigt ein Dialogfeld an, das fragt, ob stabile Sicherheitsupdates automatisch heruntergeladen und installiert werden sollen. Überprüfen Sie, ob dies mit Ja beantwortet wurde.
unattended-upgrades sucht zweimal täglich zu zufälligen Zeiten nach Updates und installiert stabile Sicherheitsupdates.
Überwachen Sie, was passiert, indem Sie die Protokolldateien im Verzeichnis /var/log/unattended-upgrades/ und die Datei /var/log/dpkg.log lesen.
Wo man Dokumentation findet
Die Konfigurationsdatei /etc/apt/apt.conf.d/50unattended-upgrades enthält Dokumentation in den Kommentaren. Dieses Dokument verweist von nun an auf diese Datei als 50unattended-upgrades.
Die Readme-Datei /usr/share/doc/unattended-upgrades/README.md.gz enthält nützliche Anweisungen. Sie kann mit dem Befehl zless (verfügbar aus dem Paket gzip) gelesen werden. Dieses Dokument verweist von nun an auf diese Datei als README.
Das Debian-Wiki hat eine Seite https://wiki.debian.org/UnattendedUpgrades.
Die Ubuntu-Serverdokumentationsseite hat ein Kapitel “Automatische Updates” über unattended-upgrades.
Man-Seite von unattended-upgrade, man unattended-upgrade.
Erweiterte Konfiguration
Wenn Sie den einfachen Weg verwenden, werden Sie feststellen, dass nicht alle Upgrades automatisch installiert werden. Möglicherweise möchten Sie auch mehr Kontrolle darüber, was automatisch passiert, zusätzlich zur Installation von Updates.
Die Konfigurationsdatei /etc/apt/apt.conf.d/50unattended-upgrades enthält Dokumentation in den Kommentaren, also lesen Sie die Datei, um zu prüfen, welche Konfigurationen verfügbar sind. Sehr nützlich ist es, unattended-upgrades so zu konfigurieren, dass E-Mails gesendet werden, wenn etwas passiert.
Es ist wichtig zu wissen, dass die Konfigurationsdatei durch die Installation oder das Upgrade des Pakets unattended-upgrades erstellt wird. Wenn unattended-upgrades selbst aktualisiert wird oder wenn auf die nächste Betriebssystemversion gewechselt wird, führen Änderungen in dieser Datei zu Konflikten, die manuell gelöst werden müssen. Die Dokumentationsdatei README schlägt vor, die Datei 52unattended-upgrades-local zu erstellen, anstatt die ursprüngliche Konfigurationsdatei zu ändern.
Wenn Sie möchten, können Sie die Datei /etc/apt/apt.conf.d/20auto-upgrades überprüfen, ob sie diese Zeilen enthält:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";Wenn Sie den Befehl dpkg-reconfigure ausgeführt und mit Ja geantwortet haben, sollten die Zeilen dort sein. Die Zeilen steuern die Aktivierung von unattended-upgrades.
E-Mail senden
Damit das Senden von E-Mails funktioniert, muss der Host über ein funktionierendes E-Mail-System verfügen, das E-Mails senden kann. Überprüfen Sie das zuerst.
Aktivieren Sie das Senden von E-Mails von unattended-upgrades, indem Sie die Konfigurationsdatei 52unattended-upgrades-local bearbeiten (erstellen Sie die Datei, wenn sie im Verzeichnis /etc/apt/apt.conf/ nicht existiert). Kopieren Sie die Zeile
//Unattended-Upgrade::Mail "";aus 50unattended-upgrades, kommentieren Sie sie aus und fügen Sie die Ziel-E-Mail-Adresse zwischen die “-Anführungszeichen ein.
Es gibt auch eine Einstellung, um zu konfigurieren, ob E-Mails immer gesendet werden, wenn unattended-upgrades ein Upgrade durchführen, oder nur bei Fehlern.
// Setzen Sie diesen Wert auf "true", um E-Mails nur bei Fehlern zu erhalten. Standard
// ist es, immer eine E-Mail zu senden, wenn Unattended-Upgrade::Mail gesetzt ist
//Unattended-Upgrade::MailOnlyOnError "false";Wenn Sie die Einstellung ändern möchten, kopieren Sie die Zeilen in 52unattended-upgrades-local, kommentieren Sie die Einstellungszeile aus und ändern Sie “false” in “true”.
Es ist eine gute Idee, nach der Änderung der Konfigurationsdatei mit
unattended-upgrade --dry-run -dzu überprüfen.
Mindestens auf Debian 10, 11 und Ubuntu 22.04 erstellt die Installation von unattended-upgrades einen symbolischen Link unattended-upgrades zu unattended-upgrade im Verzeichnis /usr/bin/ und/oder /bin/, sodass beide Befehle gleich funktionieren.
$ ls -lhi /bin/unattended-upgrade*
11404505 -rwxr-xr-x 1 root root 98K tammi 15 2022 /bin/unattended-upgrade
11407087 lrwxrwxrwx 1 root root 18 tammi 15 2022 /bin/unattended-upgrades -> unattended-upgradeRepository hinzufügen
Das Hinzufügen eines Repositories, von dem automatisch aktualisiert werden soll, erfolgt durch das Hinzufügen von Zeilen zu Unattended-Upgrade::Origins-Pattern. Es gibt dazu Dokumentation in der Konfigurationsdatei.
Die README weist darauf hin, dass die Einstellungen in der späteren Konfigurationsdatei 52unattended-upgrades-local die Standardeinstellungen überschreiben. Ich habe es ausprobiert und festgestellt, dass das Setzen von Unattended-Upgfade::Origins-Pattern die in der Standarddatei festgelegten Werte nicht vollständig überschreibt, sondern zu den Standardeinstellungen hinzugefügt wird. Es ist also nicht notwendig, das gesamte Standard-Unattended-Upgrade::Origins-Pattern zu kopieren, es kann hinzugefügt werden.
Zum Beispiel wird das Paket goaccess nicht automatisch aktualisiert, wenn es aus dem offiziellen GoAccess-Repository installiert wird. Es würde automatisch aktualisiert, wenn es aus dem üblichen Debian-Repository installiert wäre (es ist aus beiden verfügbar). Das Hinzufügen des GoAccess-Repositories zu Origins-Pattern bewirkt, dass unattended-upgrades das Upgrade durchführt.
Überprüfen Sie die Situation mit apt list –upgradable:
root@posti:~# LANG=C apt list --upgradable
Listing... Done
goaccess/unknown 2:1.6.3-buster amd64 [upgradable from: 2:1.6.2-buster]
php-tcpdf/buster-backports 6.5.0+dfsg1-1~bpo10+1 all [upgradable from: 6.3.5+dfsg1-1~bpo10+1]
root@posti:~#Es gibt also zwei Pakete, die nicht automatisch von unattended-upgrades aktualisiert wurden. Die Überprüfung von goaccess zeigt, dass es aus dem offiziellen GoAccess-Repository stammt (und eine ältere Version aus dem üblichen Debian-Repository).
root@posti:~# LANG=C apt policy goaccess
goaccess:
Installed: 2:1.6.2-buster
Candidate: 2:1.6.3-buster
Version table:
2:1.6.3-buster 500
500 https://deb.goaccess.io buster/main amd64 Packages
*** 2:1.6.2-buster 100
100 /var/lib/dpkg/status
1:1.2-4+b10 500
500 http://mirror.hetzner.de/debian/packages buster/main amd64 Packages
500 http://deb.debian.org/debian buster/main amd64 Packages
root@posti:~#Das Ausführen von unattended-upgrade –dry-run -d zeigt, welche Ursprünge die nicht installierten Pakete haben. Dies kann helfen herauszufinden, was zu Origins-Pattern hinzugefügt werden muss.
Die Überprüfung des Protokolls des letzten Laufs von unattended upgrades zeigt, welche Ursprünge beim automatischen Upgrade berücksichtigt werden:
2022-09-05 08:28:08,955 INFO Überprüfen, ob das System mit Batterie betrieben wird, wird übersprungen. Bitte installieren Sie
powermgmt-base-Paket, um den Stromstatus zu überprüfen und die Installation von Updates zu überspringen, wenn das System
mit Batterie betrieben wird.
2022-09-05 08:28:08,960 INFO Anfangs-Blacklist :
2022-09-05 08:28:08,960 INFO Anfangs-Whitelist:
2022-09-05 08:28:08,960 INFO Starte das Skript für unbeaufsichtigte Upgrades
2022-09-05 08:28:08,960 INFO Erlaubte Ursprünge sind:
origin=Debian,codename=buster,label=Debian,
origin=Debian,codename=buster,label=Debian-SecurityDas GoAccess-Repository ist noch nicht vorhanden, also füge ich es zu /etc/apt/apt.conf.d/52unattended-upgrades-local hinzu.
Nebenbei bemerkt, wenn Sie unattended-upgrades auf einem Laptop installiert haben, sollten Sie in Betracht ziehen, powermgmt-base zu installieren. Dadurch wird verhindert, dass unattended-upgrades Updates startet, wenn der Laptop mit Batteriestrom betrieben wird, wie die Informationsnachricht im Protokoll informiert. Wenn Sie auf einem Server arbeiten, der immer mit Netzstrom betrieben wird, wird diese Informationsnachricht nicht mehr angezeigt, wenn Unattended-Upgrade::OnlyOnACPower “false”; zur Konfiguration hinzugefügt wird.
Unattended-Upgrade::Origins-Pattern {
// Taleman fügte GoAccess hinzu 2022-09-05
"o=GoAccess Repository, n=buster, l=Official GoAccess Repository";
};
Unattended-Upgrade::OnlyOnACPower "false";Die apt policy zeigte kein Feld a für GoAccess an, also verwendete ich o, n und l. Informationen zu diesen Feldern finden Sie in der README.
Die Variablenersetzung wird für ${distro_id} unterstützt, die die Ausgabe von lsb_release -i enthält, und ${distro_codename}, die die Ausgabe von lsb_release -c enthält. Anstatt n=buster hätte ich also n=${distro_codename} schreiben können.
Es gab zwei Pakete, die nicht automatisch aktualisiert wurden, das andere, das immer noch nicht aktualisiert ist, ist php-tcpdf. Es kann natürlich mit apt upgrade aktualisiert werden, aber es kann auch zu unattended-upgrades hinzugefügt werden, um automatisch aktualisiert zu werden. Das Verfahren ist dasselbe wie für goaccess.
Überprüfen Sie zunächst die Situation mit apt policy php-tcpdf. Das zeigt, dass es aus dem Abschnitt buster-backports des Debian-Repositorys installiert ist.
Aus unattended-upgrades.log ist zu erkennen, dass buster-backports nicht zu den erlaubten Ursprüngen gehört. Es ist in der Datei 50unattended-upgrades enthalten, aber auskommentiert. Um es zu aktivieren, kopieren Sie die Zeile
// "o=Debian Backports,a=${distro_codename}-backports,l=Debian Backports";in die 52unattended-upgrades-local innerhalb der Origins-Pattern-Einstellung und kommentieren Sie sie aus.
Überprüfen Sie nach dem Bearbeiten der Datei mit unattended-upgrades –dry-run -d, ob das hinzugefügte Repository jetzt zu den “Erlaubten Ursprüngen” gehört und php-tcpdf zu den Paketen gehört, die aktualisiert werden.
Steuerung der Zeiten
Unattended-upgrades läuft zu zufälligen Zeiten, um die Last auf den Repository-Servern zu verringern. Dies soll große Lastspitzen vermeiden, die auftreten würden, wenn alle Hosts gleichzeitig mit Updates beginnen. Überlegen Sie sorgfältig, ob Sie dieses Verhalten ändern möchten. Wenn Sie Ihr eigenes Repository oder ein Spiegel-Repository betreiben, dann treffen die Lastspitzen Ihren Repository-Server und Sie vermeiden es, die Administratoren von Repositories im Internet zu belästigen.
Es ist systemd, das steuert, zu welchen Zeiten unattended-upgrades startet. Die Datei /lib/systemd/system/apt-daily.timer hat einen Timer-Abschnitt, der die apt-Download-Aktivitäten zweimal täglich mit einer zufälligen Verzögerung von 12 Stunden startet. Ich empfehle, dies nicht zu ändern, es sei denn, Sie haben sehr gute Gründe dafür.
Der Rest der Zeitkonfigurationen erfolgt in den Dateien 50unattended-upgrades und 52unattended-upgrades-local.
Die Einstellung Unattended-Upgrade::Update-Days steuert die Wochentage, an denen unattended-upgrades läuft. Der Standardwert ist leer, was bedeutet, dass es jeden Tag läuft. Es kann so konfiguriert werden, dass es beispielsweise nur am Samstag und Sonntag läuft.
Automatischer Neustart
Unattended-upgrades kann so eingestellt werden, dass es neu startet, wenn die installierten Updates einen Neustart erfordern. Dies kann so konfiguriert werden, dass es sofort oder zu einem gewünschten Zeitpunkt geschieht. Diese Konfigurationen verwenden die Einstellungen
//Unattended-Upgrade::Automatic-Reboot "false";
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";Der Standardwert ist kein automatischer Neustart. Wenn Sie die Einstellung auf “true” ändern, erfolgt der Neustart sofort, nachdem das Upgrade installiert wurde. Automatic-Reboot-Time kann so eingestellt werden, dass der Neustart zu einem gewünschten Zeitpunkt erfolgt, wenn installierte Updates einen Neustart erfordern.
Blacklisting, Whitelisting
Eine Blacklist verhindert, dass ein Paket, das andernfalls von unattended-upgrades aktualisiert werden würde, aktualisiert wird. Die Einstellung Package-Blacklist enthält reguläre Ausdrücke. Wenn der Paketname übereinstimmt, wird es vom automatischen Upgrade ausgeschlossen.
Ich habe diese Funktion nicht verwendet, ich denke, sie kann nützlicher sein, wenn man eine Entwicklungs-Version ausführt, bei der es sinnvoll ist, das automatische Upgrade kritischer Pakete zu verhindern. Die Konfigurationsdatei 50unattended-upgrades bietet Beispiele für auf die Blacklist gesetzte Pakete.
Die README informiert über die Einstellung Package-Whitelist. Die Beschreibung besagt: “Nur Pakete, die den regulären Ausdrücken in dieser Liste entsprechen, werden zur Aktualisierung markiert.” Sie bietet keine Beispiele, um zu verdeutlichen, in welchen Fällen es wünschenswert wäre, die Whitelist festzulegen. Aus meinen Experimenten scheint es so zu sein, dass das Hinzufügen von Paketen zur Whitelist bedeutet, dass nur diese Pakete automatisch aktualisiert werden, nichts anderes.
Fazit
Jetzt wissen Sie, was unattended-upgrades tun kann und wie Sie es dazu bringen, das zu tun, was Sie möchten.
Es gibt Fälle, in denen unattended-upgrades das Upgrade nicht durchführt, weil der Befehl apt upgrade ein Paket zurückhält. Dies geschieht, wenn ein Upgrade ein Paket entfernen oder ein zuvor nicht installiertes Paket installieren würde. Um das Upgrade durchzuführen, tun Sie es selbst mit dem Befehl apt full-upgrade, der Pakete entfernen oder neue, zuvor nicht installierte Pakete installieren kann. Wenn unattended upgrades so konfiguriert ist, dass E-Mails gesendet werden, enthält die E-Mail die Zeile
Pakete mit aktualisierbarem Ursprung, aber zurückgehalten:Ein letztes Beispiel von 52unattended-upgrades-local von einem meiner Hosts:
Unattended-Upgrade::Origins-Pattern {
// Taleman hinzugefügt 2022-09-05
"o=GoAccess Repository, n=buster, l=Official GoAccess Repository";
"o=Debian Backports,a=${distro_codename}-backports,l=Debian Backports";
"origin=deb.sury.org,archive=${distro_codename}";
};
Unattended-Upgrade::Mail "[email protected]";
Unattended-Upgrade::OnlyOnACPower "false";Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.