Manuelle und geplante Backups von Linux Servern mit Rclone

Simples Linux Server Backup mit Rclone

In diesem Beitrag möchte ich dir zeigen, wie Du sowohl manuelle, als auch automatisierte Linux Server Backups mithilfe von Rclone erstellst. Es wird ein Linux-System mit root Zugriff benötigt. Dabei spielt es keine Rolle, ob es sich um einen Dedicated Server oder VPS handelt.

Wichtig: Die folgenden Befehle wurden mit Ubuntu 18.04(64 Bit), Ubuntu 20.04(64 Bit), Debian 9 und Debian 10 getestet. Andere Distributionen wie CentOS erfordern hier und da ein paar Anpassungen.

Um die folgenden Befehle auszuführen benötigst Du root-Rechte, welche Du dir mit diesem Befehl verschaffen kannst:

sudo -i

Erste Konfiguration des Linux Servers

1. S3 Object Storage Zugangsdaten

Ich werde in diesem Tutorial den Contabo Object Storage als Speicher verwenden.

Zunächst werden folgende Zugangsdaten benötigt:

Access_key, secret_key und die S3-URL von Contabo. All diese Daten kannst Du im Abschnitt Object Storage deines CCP finden.

S3 Object Storage Zugangsdaten im CCP

2. Wie man eine Linux Sicherungsdatei erstellt

Zuerst müssen wir die neueste Version von rclone mit folgendem Befehl installieren:

curl https://rclone.org/install.sh | sudo bash

Mit dem folgenden Befehl erstellen wir ein Backup des aktuell angemeldeten Benutzers und speichern die Backup-Datei mit Datum in Verzeichnis /opt/backup/. Zunächst müssen wir jedoch das Verzeichnis /backup/ mit folgendem Befehl erstellen:

mkdir /opt/backup/

cd /opt/backup && tar -cvzf backup-$(date +%d.%m.%Y).tar.gz --directory=/ --exclude=lost+found --exclude=dev/* --exclude=proc/* --exclude=run/* --exclude=sys/* --exclude=tmp/* --exclude=mnt/* --exclude=media/* --exclude=opt/backup/* .

Erläuterung des Befehls:

tar - tar erstellt uns ein Archiv unserer Daten. In diesem Beispiel mit den folgenden Parametern: 
c - (create) erstellt ein neues Archiv 
v - (verbose) detaillierte Ausgabe 
 z - (gzip) das Archiv wird mit gzip komprimiert 
 f - (file) Name und Speicherort des Archivs. Muss als letzte Option übergeben werden, da alles nach f als Dateipfad behandelt wird.
/pfad/filename.tar.gz - Pfad, in den das Archiv geschrieben wird.  
Wie Sie sehen können, habe ich einige Verzeichnisse ausgeschlossen, die wir nicht sichern wollen, aus Gründen des Speicherplatzes oder wegen unerwünschter großer Dateien in tmp. 

3. Konfiguration von Rclone

In diesem Beispiel werden werden die Ordner und Dateien, von denen Du ein Backup erstellen willst, im Verzeichnis /opt/backup/ gespeichert.

Eine Anleitung, wie du Rclone einrichtest findest du hier.

Nach der Installation können wir von unserem Linux Server ein Backup mit Rclone erstellen.

4. Manuelles kopieren des Linux Backups

Ich habe meinen remote Speicherplatz eu2 und meinen Sicherungsordner backup genannt. Nun müssen wir einen Bucket erstellen, in dem wir alle Dateien speichern.

rclone mkdir eu2:backup

Nachdem Du alle Schritte im obigen Abschnitt „Erstkonfiguration“ durchgeführt hast, gib folgenden Befehl ein, um die Dateien auf dem Object Storage zu speichern

Alle Daten aus /opt/backup werden nun in den Ziel-Bucket übertragen.

rclone copy -P /opt/backup eu2:backup/

Kopieren aller Daten.

rclone move -P /opt/backup eu2:backup/

Move löscht Dateien nach der Übertragung.

rclone sync -P /opt/backup eu2:backup/

Sync aktualisiert die Dateien auf dem remote Speicher, gibt aber keinen Platz auf Ihrem Server frei.

5. Planen von Rclone Backups

Nachdem Du alle Schritte im obigen Abschnitt „Erstkonfiguration“ durchgeführt hast, kannst Du nun auch die Simplen Linux Backups mit Rclone planen.

Als erstes müssen wir eine Skriptdatei erstellen:

sudo nano /var/rclone.sh oder ein Name Ihrer Wahl

Und füge folgendes dem Skript hinzu :

#!/bin/bash

cd /opt/backup && tar -cvzf backup-$(date +%d.%m.%Y).tar.gz --directory=/ --exclude=lost+found --exclude=dev/* --exclude=proc/* --exclude=run/* --exclude=sys/* --exclude=tmp/* --exclude=mnt/* --exclude=media/* --exclude=opt/backup/* .

/usr/bin/rclone sync -P --update --verbose --transfers 30 --log-file=/var/log/upload.log "/opt/backup" "eu2:backup/"

Jetzt machen wir die Datei ausführbar

sudo chmod +x /var/rclone.sh

Nun müssen wir unserem System mitteilen, wann wir unser Skript ausführen wollen

sudo crontab -e

Und fügen Folgendes hinzu

0 2 * * * /var/rclone.sh

In diesem Beispiel wird die Datei /var/rclone.sh jeden Tag um 02:00 Uhr aufgerufen.

Mehr über FTP Backup findest du in folgendem Artikel.

Du kannst die Uhrzeit und das Datum nach Belieben ändern. Wenn Du noch nicht mit cron vertraut bist, findest du hier einen Crontab-Generator, der dir dabei helfen wird.

Das ist der weg um ein Simples Linux Backup mit Rclone durchzuführen und zu Planen.

6. Daten wiederherstellen mit Rclone

rclone copy -P eu2:backup/ /opt/backup

Um dein Backup herunterzuladen, müssen Quelle und Ziel gewechselt und angegeben, welches Backup du runterladen möchtest (Solltest du mehrere Backups gespeichert haben z.B Backup-20.04.2022.tar.gz)

Zusätzliche Informationen

Weitere Informationen über Flags und Konfiguration findest du in der offiziellen Dokumentation

In manchen Fällen muss die Flag -s3-chunk-size 200M zu dem Skript hinzufügt werden, wenn die Upload-Geschwindigkeit sehr langsam ist.