Ein Backup, das du nie vergisst
Ein Backup ist eine Kopie von Daten an einem zweiten Ort. Sie rettet dich, wenn das Original kaputtgeht oder gelöscht wird.
Stell dir die Kasse eines Ladens vor. Fällt abends die Festplatte aus, sind die Einnahmen weg. Heute lernst du, wie ein Server solche Kopien jede Nacht von allein macht, mit dem Dienst cron.
Am Ende dieser Lektion
Notiz
Ich kann eine Sicherung anlegen und zu festen Zeiten automatisch ausführen lassen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Backup | eine Kopie von Daten an einem zweiten Ort | |
| Archiv | eine einzige Datei, in der viele Dateien stecken | sicherung.tar.gz |
| cron | der Dienst, der Befehle zu festen Zeiten startet | |
| Cron-Zeile | eine Zeile mit fünf Zeitfeldern und einem Befehl | 30 2 * * * |
| Wiederherstellen | Daten aus einer Sicherung zurückholen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Bevor du anfängst
Notiz
Diese Lektion nutzt ein anderes Lab, einen Server zum Verwalten. Drück oben in der Leiste auf Lab starten und warte eine Minute. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal der Maschine.
Ein Archiv packt viele Dateien in eine
Mit tar packst du Dateien in ein Archiv. Die Endung .tar.gz sagt: gepackt und verkleinert. -c erzeugt es, -z verkleinert, -f nennt den Dateinamen.
Du legst gleich eine kleine Datei an und sicherst sie. Sie spielt die Einnahmen der Kasse. Danach schaust du mit -t in das Archiv, ohne etwas auszupacken.
Eine Datei mit Kassendaten anlegen
printf 'Kasse 1: 120 Euro\n' > ~/kasse.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Datei in ein Archiv packen
tar -czf ~/sicherung.tar.gz -C ~ kasse.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Inhalt des Archivs auflisten
tar -tzf ~/sicherung.tar.gzHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein Backup ist erst gut, wenn es zurückkommt
Viele merken erst im Notfall, dass ihre Sicherung leer oder kaputt ist. Probiere darum aus, ob du Daten zurückholen kannst.
Du löschst jetzt die Originaldatei und holst sie mit tar -x aus dem Archiv zurück. -C ~ heißt: in den Heimatordner auspacken.
Das Original löschen
rm ~/kasse.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Datei aus dem Archiv zurückholen
tar -xzf ~/sicherung.tar.gz -C ~Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Prüfen, dass der Inhalt stimmt
cat ~/kasse.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Cron-Zeile hat fünf Zeitfelder
Der Dienst cron startet Befehle zu festen Zeiten. Jede Aufgabe ist eine Cron-Zeile: fünf Zeitfelder und dann der Befehl.
Die Felder heißen der Reihe nach Minute, Stunde, Tag des Monats, Monat und Wochentag. Ein Stern * heißt „jede“. */15 heißt „alle 15“. Beim Wochentag ist 1 der Montag.
Beispiel: vier Cron-Zeilen
| Zeitfelder | Wann der Befehl läuft |
|---|---|
| */15 * * * * | Alle 15 Minuten, den ganzen Tag |
| 0 8 * * 1 | Jeden Montag um 8:00 Uhr |
| 30 6 1 * * | Am Ersten jedes Monats um 6:30 Uhr |
| 0 */6 * * * | Alle sechs Stunden, um 0, 6, 12 und 18 Uhr |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele glauben, 5 * * * * heiße „alle fünf Minuten“. Das stimmt nicht. Es heißt: in Minute 5 jeder Stunde, also zum Beispiel um 9:05 und um 10:05. Für „alle fünf Minuten“ schreibst du */5 * * * *.
Jedes Konto hat seine eigene Cron-Liste
Die Liste eines Kontos heißt crontab. Mit crontab -l siehst du sie, mit crontab -r löschst du sie. Der Befehl crontab - liest die neue Liste von der Eingabe.
Du legst jetzt eine Zeile an, die jede Minute die Uhrzeit in eine Datei schreibt. Dann wartest du gut eine Minute. Der Run mit sleep 65 hält das Terminal so lange an.
Eine Cron-Zeile für jede Minute anlegen
printf '* * * * * date >> $HOME/zeit.log\n' | crontab -Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Cron-Liste des Kontos ansehen
crontab -lHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Gut eine Minute warten
sleep 65Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Prüfen, ob cron die Datei beschrieben hat
test -s ~/zeit.log && echo vorhandenHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Cron-Liste wieder leeren
crontab -rHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.