Skip to main content

Linux automatisch aktualisieren

Einleitung

In diesem Beitrag gehe ich drauf ein, wie wir mithilfe des Paketes cron-apt unseren Debian Server automatisch aktualisieren. Damit können wir sicherstellen, dass wenn wir im Urlaub oder nicht anwesend sind, unser Server immer auf dem aktuellen Stand ist.


Installation des Paketes

Dazu müssen wir zuerst die Paketquellen aktualisieren und gegebenenfalls Updates installieren, wenn diese vorhanden sind.

sudo apt update && sudo apt upgrade -y

Im nächsten Schritt installieren wir jetzt das Paket cron-apt.

Dazu geben wir folgenden Befehl in die Konsole ein.

sudo apt install cron-apt -y

Konfiguration von cron-apt

Um unsere Updates automatisch installieren zu lassen, müssen wir cron-apt jetzt nur noch konfigurieren. Damit wird dann das Skript jeden Morgen um 4 Uhr Morgens gestartet, und spielt die Updates ein. (Die Uhrzeit kann noch geändert werden).

Wir öffnen zuerst die Standardkonfiguration. Wir öffnen die Datei 3-download mit einem Editor unserer Wahl. Ich verwende hier nano.

sudo nano /etc/cron-apt/action.d/3-download

In dieser Datei befindet sich schon ein Befehl. Dieser Befehl wird automatisch ausgeführt, wenn, cron-apt gestartet wird. Dies geschieht dann automatisch, wenn die festgelegte Uhrzeit erreicht wird, oder wenn wir den Befehl sudo cron-apt -s eingeben.

Die Datei sollte folgenden Inhalt haben:

autoclean -y
dist-upgrade -d -y -o APT::Get::Show-Upgraded=true

Bei diesem Befehl werden die allgemeinen Updates nur heruntergeladen, aber nicht installiert! Wenn wir möchten, dass die Updates automatisch installiert werden, müssen wir nur den Parameter -d entfernen. Dieser gibt an, dass die Updates nur heruntergeladen werden, und wir die Installation selbst in die Hand nehmen müssen.

Wenn die Updates automatisch installiert werden sollen, und man darüber wegsieht, dass es dann zu Problemen kommen kann, durch beispielsweise zurückgezogene Pakete, kann man den nachstehenden Befehl anstelle des vorhandenen verwenden.

autoclean -y
dist-upgrade -y -o APT::Get::Show-Upgraded=true

Wenn wir beispielsweise wollen, dass die normalen Updates nicht automatisch installiert werden, aber Security Updates automatisch installiert werden sollen, können wir die Durchläufe durch eigene Skripte anpassen. Dazu müssen wir nur in demselben Verzeichnis eine Datei mit einer fortlaufenden Nummer und einer Beschreibung erstellen.

sudo nano /etc/cron-apt/action.d/10-securityupdates

In der Datei fügen wir folgenden Inhalt ein:

upgrade -y -o APT::Get::Show-Upgraded=true

Damit jetzt unsere Datei auch verwendet wird, wenn cron-apt startet, müssen wir noch eine Konfigurationsdatei anlegen. Dazu legen wir wieder eine Datei mit dem Namen unser vorherigen angelegten Datei an. Dabei verändert sich nur der Ordner, in dem die Datei angelegt wird.

sudo nano /etc/cron-apt/config.d/10-securityupdates

Dort fügen wir folgenden Code ein. Dabei müssen wir aber die entsprechenden Pfade zu den Paketquellen Listen angeben.

OPTIONS="-q -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list -o Dir::Etc::SourceParts=\"/dev/null\""

Ausführungszeit ändern

Möchten wir jetzt zuletzt noch ändern, wann cron-apt ausgeführt wird, müssen wir die entsprechende Konfigurationsdatei öffnen. Dazu verwenden wir den folgenden Befehl:

sudo nano /etc/cron.d/cron-apt

Wir können dort jetzt die Zeit angeben, wann cron-apt ausgeführt werden soll. Die Zeit geben wir über Syntax der Crontabs / Cronjobs an.

Wenn wir jetzt überprüfen wollen, ob unser Programm sauber durchläuft, können wir es manuell starten, mit dem folgenden Befehl.

sudo cron-apt -s

Im Weiteren legt das Programm auch Logfiles ab. Diese können wir unter /var/log/cron-apteinsehen.