Linux gilt als sehr sicheres Betriebssystem und trotzdem benötigt auch Linux ab und an ein paar Sicherheitsupdates - man mag es kaum glauben- .
Ganz zu schweigen von den vielen neuen Features, Bugfixes und möglichen Performaceoptimierungen, die Updates mit sich bringen können.
Wer jetzt nicht gerade mit einer Distribution in der Weltgeschichte unterwegs ist, wie Ubuntu oder einer der diversen Derivate, die einen Updatemanager mit sich bringen, der muss Updates jedes mal manuell ausführen. Auch ein Nutzer eines Raspberry Pi mit Linux oder aber Linux basierte headless Server ohne grafische Oberfläche schauen in die Röhre. Hier gibt es dann nämlich keinen Updatemanager, welcher bereits automatische Updates ausführt. Ohne diesen gibt es defacto also keine ganz so kompfortable Lösung, wie man diese von Windows, MacOS oder Android her kennt. Oder doch?
Wir müssen uns für einen regelmäßigen Updateintervall anders behelfen. Einen Termin im Kalender erstellen oder aber einfach dran denken ab und an mal ein Update zu fahren, wenn uns die Muße danach steht, ist nicht immer ganz so einfach.
Eine ganz einfache, automatisierte und damit komfortable Alternative unter Linux nennen sich Cronjobs. Über diese Cronjobs lassen sich zu festgelegten Zeiten definieren, um so bestimmte Aufgaben abfertigen. In diesem Artikel möchte ich diese Cronjobs gerne einmal dazu aufgreifen automatisierte und vielleicht nächtliche Updates auf einem Linux Betriebssystem auszuführen. Ohne späteres Zutun.
Wir möchten nun gerne mittels Cronjobs und einer einzigen Zeile Befehl einen nächtlichen Update-Zyklus unter Linux starten.
Hierzu befolgt bitte folgende Schritte:
- Öffnet das Terminal (Strg + Umschalt + T)
- Gebt dort ein: sudo crontab -e
- Wählt einen Editor (Optional; nano ist der einfachste)
- Fügt als letzte Zeile folgendes ein: 0 0 * * 0 sudo apt-get update && sudo apt-get upgrade -y
- Speichert die Eingabe mit Strg + X (Bestätigung der Änderungen mit "Y" und Enter)
- Fertig!
Was haben wir getan?
Der Befehl "sudo crontab -e" hat uns erlaubt als Administrator ("sudo") den Service "crontab" zu bearbeiten ("-e").
Die Zeile "0 0 * * 0 sudo apt-get update && sudo apt-get upgrade -y" ist wie folgt zu verstehen:
[Befehl ausführen zu der Zeit XYZ] [Befehl, der ausgeführt werden soll]
Die Zeitangabe ist aufgeteilt in Minuten, Stunden, Tag, Monat, Wochentag. Ein Sternchen bedeutet, dass jede Angabe zutrifft. Wir führen den Befehl nun also um 00:00 Uhr aus, wenn der Wochentag der Nummer 0 (Montag) entspricht. Der Tag des Monats (erste oder zweite oder ...) ist uns egal. Genau so, wie der Monat.
Der Befehl besteht aus den beiden Komponenten "apt-get update" und "apt-get upgrade". Das "&&" bedeutet, dass wir den zweiten Befehl dann ausführen, wenn der Erste erfolgreich war. Dies nennt sich Pipelining. Das "-y" hinter dem Befehl "apt-get upgrade" bedeutet, dass wir die Bestätigungsfrage, ob das Update wirklich durchgeführt werden soll, ignorieren.
das debian paket "unattended-upgrades" sollte automatisiert alle sicherheitsupdates installieren. ein einfaches "apt-get install unattended-upgrades -y" sollte reichen.
ich selbst verwende aber nach wie vor das debian paket "cron-apt". das macht im prinzip das selbe wie dein cronjob, nur sicherer, mit vielen einstellungesmöglichkeiten und mit email benachrichtungen. solltest du dir mal anschauen.