Website-Suche

Schützen Sie Ihr /home mit Cron-Backups


Objektiv

Erstellen Sie ein Backup-Skript, das regelmäßig wichtige Dateien aus Ihrem /home-Verzeichnis sichert.

Ausschüttungen

Dies funktioniert mit jeder Linux-Distribution.

Anforderungen

Eine funktionierende Linux-Installation mit Root-Zugriff.

Schwierigkeit

Leicht

Konventionen

  • # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder mit dem Befehl sudo
  • $ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Einleitung

Sicher, es gibt Backup-Dienstprogramme für Linux, aber mit ein paar Skripten können Sie Ihre wichtigen Dateien regelmäßig und mit wenig bis gar keinem Aufwand sichern.

Ein sehr einfaches Bash-Skript erledigt den Großteil der Arbeit. Für den Rest nutzen Sie das Cron-System, das bereits auf Ihrem Computer vorhanden ist.

Erstellen Sie das Skript

Sie haben es vielleicht schon erraten, aber das Skript, das Sie schreiben werden, verwendet tar. tar komprimiert Ihre Dateien in ein besser handhabbares und platzsparendes Format.

Beginnen Sie mit der Erstellung des Skripts. Sie können es überall ablegen, so dass Ihr /home-Verzeichnis in Ordnung ist.

vim home-backup.sh

#! /bin/bash

#
Home Directory Backup Script
#


Jetzt können Sie mit der Erstellung des Skripts selbst beginnen. Es besteht die Möglichkeit, dass Sie nicht alles in diesem Verzeichnis sichern möchten. Wahrscheinlich ist viel zu viel da, und das Sichern von Dingen wie Spielen ist normalerweise nicht die beste Nutzung der Systemressourcen.

Natürlich können Sie, und in diesem Fall, den gesamten Verzeichnisauswahlprozess ignorieren und einfach /home/user verwenden.

Erstellen Sie also eine Tar-Zeile, die Schlüsselverzeichnisse in Ihrem /home komprimiert.


tar -cJpf /media/backup/home-backup-`date +%d-%m-%Y`.tar.xz /home/user/{Documents,Downloads,Pictures,Music,.config,.Xresources,.xinitrc,.i3,.mozilla,.zshrc}

Mit genau dieser Zeile erstellt Ihr Computer ein tar-Archiv unter /media/backup in einer Datei namens home-backup mit dem aktuellen Datum als markiert. Die IT wird die xz-Komprimierung hinzufügen und auch die Ordnerstruktur und die Berechtigungen beibehalten.

Inkrementelle Sicherungen

Das ist zwar gut, kann aber auch besser sein. tar bietet inkrementelle Backups. Bei inkrementellen Sicherungen wird beim ersten Mal ein großes Backup erstellt und Änderungen für jeden nachfolgenden Lauf in einem separaten, kleineren Archiv erkannt und gesichert. Auf diese Weise spart Ihr Computer Zeit und Platz, da er nicht wiederholt dieselben Daten sichert.

So sieht derselbe Befehl aus, der inkrementell ausgeführt wird.


tar --listed-incremental=/media/backup/snapshot.file -cJpf /media/backup/home-backup-`date +%d-%m-%Y`.tar.xz /home/user/{Documents,Downloads,Pictures,Music,.config,.Xresources,.xinitrc,.i3,.mozilla,.zshrc}

Für die inkrementelle Sicherung ist eine Snapshot-Datei erforderlich, um Dateien und Änderungen nachzuverfolgen. Es ist wahrscheinlich eine gute Idee, es im selben Verzeichnis wie die Backups aufzubewahren.

Fügen Sie es zu Crontab hinzu

Inzwischen sollten Sie ein Skript haben, das in etwa so aussieht.


#! /bin/bash

#
Home Directory Backup Script
#
tar --listed-incremental=/media/backup/snapshot.file -cJpf /media/backup/home-backup-`date +%d-%m-%Y`.tar.xz /home/user/{Documents,Downloads,Pictures,Music,.config,.Xresources,.xinitrc,.i3,.mozilla,.zshrc}

Stellen Sie sicher, dass das Skript ausführbar ist.

chmod +X /home/user/home-backup.sh

Wenn Sie damit zufrieden sind, können Sie mit der Erstellung des crontabEintrags fortfahren, damit cron es ausführen kann. Um den Editor aufzurufen, geben Sie den folgenden Linux-Befehl als root ein.


crontab -u username -e

Es öffnet sich ein Editor (wahrscheinlich nano), in dem Sie Ihre Zeile hinzufügen können. Wenn Sie fertig sind, sieht es in etwa so aus.


0 3 * * * /home/user/home-backup.sh

Zeitpunkt

Okay, was Sie wahrscheinlich verwirrt, sind die Zahlen und Sternchen am Anfang der Zeile. Sie bestimmen das Timing.

Die erste Ziffer steuert die Sekunden. Die zweite sind Stunden. Die nächsten zwei sind Tage und Monate. Der letzte ist der Wochentag (1-7). Wenn der Platz durch ein Sternchen belegt ist, wird das Skript jedes Mal ausgeführt.

Eine Zahl bedeutet, dass das Skript zu diesem Zeitpunkt ausgeführt wird. Um das vorherige Beispiel zu verwenden, wird das Skript jeden Tag genau um 3 Uhr morgens ausgeführt. Wenn Sie es stattdessen jedes Mal um 3:30 Uhr morgens ausführen möchten, würde es so aussehen.


30 3 * * * /home/user/home-backup.sh

Wenn Sie eine Zeit haben, die für Sie passt, speichern Sie und beenden Sie die Zeit. Das Skript wird von nun an automatisch zu dem von Ihnen angegebenen Zeitpunkt ausgeführt.

Abschließende Gedanken

Offensichtlich können Sie hier verschiedene Komplexitätsebenen hinzufügen, einschließlich verschlüsselter Verzeichnisse und/oder Verzeichnisse. Sie können wählen, ob Sie Backups für mehrere Tage speichern und auch ältere automatisch löschen möchten. Natürlich wäre es eine gute Idee, auch ein Backup auf ein Remote- oder Netzwerklaufwerk einzubauen.

Es könnte eine gute Idee sein, ein Skript zu schreiben, das das Flag --concatenate von tar verwendet, um die Archive von Zeit zu Zeit zusammenzuführen. Andernfalls werden Sie viele Archive mit sehr wenigen Dateien darin haben.

Da es sich um eine skriptgesteuerte Methode handelt, sind Sie mit Bash wirklich nur durch Ihre Skriptfähigkeiten eingeschränkt.

Verwandte Artikel: