Skip to main content

Debian 8 Jessie – Vollbackup und inkrementelle Backups mittels tar erstellen

Unter Linux ist es sehr leicht möglich Backups zu erstellen ohne zusätzliche Programme zu installieren. Der Vorteil von tar gegenüber anderen Backup Programmen ist, dass tar Archive mit vielen Programmen wie zum Beispiel 7zip oder WinRAR geöffnet werden können und so das Wiederherstellen von Dateien sehr einfach ist.

Zuerst wollte ich meine Daten in die Amazon S3 Cloud speichern. Dies ist sehr einfach möglich und die Kosten sind auch sehr gering. Dann fiel mir jedoch auf, dass wenn ich aktiv meine Dateien von meinem Server auf einen anderen Server / Anbieter speichere, ich immer die Zugangsdaten dort hinterlegen muss. Das heißt, dass ein Angreifer, der die Kontrolle über meinen Server hat, auch die Kontrolle über alle anderen Server / Anbieter hat, auf denen ich meine Backups speichern würde. Daher habe ich mich dazu entschieden Backups zu erstellen und diese per SFTP freizugeben. So kann ein anderer Server sich die Backups einfach downloaden und die Zugangsdaten zum Server müssen nicht auf dem zu sichernden Server hinterlegt sein. Eine Anleitung zum Erstellen eines SFTP Servers gibts hier.

Die Grundlage des Backup Scripts kommt von ubuntuusers.de.

Hier mein Backup Script

Einstellungen:

  • Backupname = Name, wie die Backupdatei später heißen soll
  • Backupalter = Gibt an, wie lange die Backupdateien erhalten bleiben sollen (in Tagen)
  • Backupdir = Ort, wo die Backups gespeichert werden
  • Source = Ein Verzeichnis oder mehrere, die gesichert werden sollen
  • Emailempfänger = Wer die Email erhalten soll (funktioniert nur mit installiertem Email Server). Wenn kein Email Server installiert ist, „root“ eingeben.

Mein Backup Script ermöglicht es, dass

  • jeden Montag Vollbackups erstellt werden
  • an den anderen Tagen jeweils inkrementelle Backups erstellt werden. In diesen Backups werden nur die Änderungen gegenüber dem letzten Vollbackup gespeichert. Daher sind diese deutlich kleiner.
  • bei jedem Start alle Backups überprüft und die Backups, die älter als 14 Tage sind gelöscht werden. Die 14 Tage können aber beliebig verändert werden.

!!!ACHTUNG !!!

Es werden ALLE Dateien gelöscht, die im „BACKUPDIR“ und älter als 14 Tage sind. Also für das „BACKUPDIR“ bitte einen neuen Ordner angeben.

Script starten

Um das Script zu starten, muss eine Datei erzeugt und danach noch die Berechtigungen der Datei angepasst werden.

Crontab anlegen

Nachdem ihr den obigen Befehl erfolgreich ausprobiert habt, legen wir jetzt einen Cronjob an, damit dieser automatisch ausgeführt wird.

Das geht mit

Wenn ihr noch keinen Crontab angelegt habt, dann sollte folgende Meldung erscheinen. Hier drückt ihr einfach „1“.

cert_3

Nun solltet ihr folgendes sehen.

cert_4

Mein Backup Script liegt unter „/home/user/backup.sh“.

Fügt am Ende der Datei folgende Zeile ein:

Erklärung

Das Skript wird also jeden Tag nachts um 4 Uhr gestartet.

Christian

Christian

Ich studiere derzeit Informatik und betreibe in meiner Freizeit diesen Blog.
Auf die Idee kam ich, als ich Anleitungen zum Thema Debian gesucht habe. Leider waren viele Anleitungen veraltet und daher nutzlos.

Da kam ich auf die Idee selbst Anleitungen zu schreiben.
Wenn meine Anleitungen auch veraltet sein sollten, dann schreibt mir das bitte und ich versuche sie zu aktualisieren.

Wer mich (finanziell) unterstützen möchte, der kann mir hier gerne etwas spenden 🙂
PayPal
https://paypal.me/goNeuland
BTC
1GHRnh6DvdPE4FFpxGbEQu6m4sgnrjpoxM
ETH
0x53d3005663026F96e7cCCa39D14fA487e1072318

Danke 🙂
Christian

Christian

Ich studiere derzeit Informatik und betreibe in meiner Freizeit diesen Blog. Auf die Idee kam ich, als ich Anleitungen zum Thema Debian gesucht habe. Leider waren viele Anleitungen veraltet und daher nutzlos. Da kam ich auf die Idee selbst Anleitungen zu schreiben. Wenn meine Anleitungen auch veraltet sein sollten, dann schreibt mir das bitte und ich versuche sie zu aktualisieren. Wer mich (finanziell) unterstützen möchte, der kann mir hier gerne etwas spenden :) PayPal https://paypal.me/goNeuland BTC 1GHRnh6DvdPE4FFpxGbEQu6m4sgnrjpoxM ETH 0x53d3005663026F96e7cCCa39D14fA487e1072318 Danke :)

13 Kommentare zu “Debian 8 Jessie – Vollbackup und inkrementelle Backups mittels tar erstellen”

    1. Das Skript kann an jedem beliebigen Ort gespeichert / erstellt werden.

      Später im Schritt „Crontab anlegen“ muss nur auf diesen Pfad verwiesen werden.
      In diesem Beispiel wurde das Skript an folgendem Ort erstellt: „/home/Nutzername/backup.sh“

  1. Hallo,

    ziemlich cool!

    kann man mit dem Script eine komplette Raspberry Pi-SD auf eine NAS sichern? Was muss ich anpassen?

    Zum Rücksichern, kopiere ich dann einfach den entpackten Inhalt der TAR-Datei auf eine SD?

    (ja, ich bin kompletter Anfänger…)

    Neugierige Grüße,

    Andreas

    1. Hallo,
      ich weiß leider nicht genau, ob Linux „sich selbst“ sichern kann. Habe es noch nie versucht.
      Das Skript ist gedacht um wichtige Daten zu sichern.

      Sie können es jedoch gerne ausprobieren und mir dann davon berichten. Wenn Sie alles sichern möchten, dann müssen Sie diese Zeile Code nutzen
      BACKUPDIR=""

      Liebe Grüße
      Christian

  2. Hallo,

     

    ziemlich gutes Skript. Ich habe mir Kopien angelegt. Ein backup-script sichert die Webs, ein anderes mit angepassten Pfaden sichert die Mailfolder als Beispiel. Der Zielordner ist derselbe.  Muss ich für jedes Script eine eigene timestamp.dat anlegen, oder kommt das Script damit klar, dass es 2 mal backupen soll? Funktioniert dann das inkrementelle trotzdem?

     

    Gruss Ralf

  3. Hallo,

     

    wenn man mehrere backup-scripts verwendet, weil man unterscheiden möchte zwischen webs und mails-backup, reicht eine timestamp.dat, im zielordner?

    Oder ist es besser die timestamp.dat in verschiedene ordner abzulegen, damit sich nichts überschreibt, und das inkrementelle backup funktioniert.

     

    Gruss Ralf

  4. Hallo,

    ich habe dieses Script ein wenig mit deinem Nextcloud Backup Script kombiniert, vor allem der Datenbank Teil und das Ein- und Ausschalten des Wartungsmodus. Das funktioniert auch wunderbar.

    Ich würde gerne die ältesten Backups erst löschen, wenn nicht mehr genug Speicherplatz vorhanden ist. Ist das auch in Kombination mit dem „find“ Befehl möglich?

    Liebe Grüße,

    Matthias

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.