Ich habe bereits eine Anleitung geschrieben, wie man ein Backup mittels tar realisiert. Hier stelle ich euch jetzt eine Methode vor, die ich noch besser finde. Der Vorteil mit rsync ist, dass immer ein “Vollbackup” zur Verfügung steht und man rsync so konfigurieren kann, dass “geänderte Dateien” in ein anderes Verzeichnis kopiert werden und dann erst durch die neue Dateiversion ersetzt werden. Dies bedeutet, dass zum Beispiel von Dokumenten immer “alle Versionen” gesichert werden und wiederherstellbar sind.
Installieren
Falls rsync noch nicht installiert ist, dann kann es mit folgendem Befehl installiert werden.
apt-get install rsync
Befehl
Der Befehl zum sichern lautet:
rsync -av Quelle Ziel/ -b --backup-dir=Backup-Ort --stats
Parameter:
- a: es werden die Parameter -g -l -p -t -r- D- o gesetzt
- g: behält Gruppenrechte bei
- l: kopiert symbolische Links
- p: behält Rechte bei
- t: behält Zeiten bei
- r: kopiert Unterverzeichnisse
- D: behält Gerätedateien bei (nur für root)
- o: behält Besitzrechte bei
- v: zeigt viele Informationen
- b: erzeugt ein Backup von Dateien, die geändert wurden
- backup-dir: Verzeichnis, an in das die geänderten Dateien kopiert werden
- stats: zeigt nach Abschluss eine Zusammenfassung an
- h: gibt die Zusammenfassung für den Benutzer leserlicher aus
optional:
- c: vergleicht Dateien anhand einer Checksumme und nicht Zeit / Größe
- exclude=Verzeichnis: schließt dieses Verzeichnis aus
Wenn ihr Probleme mit rsync habt, weil rsync immer alle Dateien neu kopiert, obwohl diese bereits vorhanden sind, dann hilft euch folgender Parameter vlt. weiter.
- –size-only: bewirkt, dass Dateien nur anhand ihrer Dateigröße verglichen werden. Dies verhindert Probleme des Timestamps
Beispiel:
rsync -av /opt/daten/ /home/backup/ -b --backup-dir=/home/geandert/$(date +%y-%m-%d:%H:%M:%S) --stats
Mit diesem Befehl werden alle Inhalte des Ordners “/opt/daten” in den Ordner “/home/backup” kopiert. Daten, die bereits im Ordner “/home/backup” vorhanden sind und nun durch eine neue Datei überschrieben werden sollen, werden in das Verzeichnis “/home/geandert/aktuellesDatum” kopiert und dann im Backup Verzeichnis durch die neue Datei ersetzt. S
Script starten
Der Befehl kann in der Konsole ausgeführt oder in ein Script kopiert und dann gestartet werden.
Um das Script zu starten, muss eine Datei erzeugt und danach noch die Berechtigungen der Datei angepasst werden.
nano backup.sh backup.sh ist der Name der Datei. Hier kopiert ihr den obigen Code rein. chmod +x backup.sh ermöglicht das Starten des Scripts
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
sudo crontab -e
Wenn ihr noch keinen Crontab angelegt habt, dann sollte folgende Meldung erscheinen. Hier drückt ihr einfach “1”.
Nun solltet ihr folgendes sehen.
Mein Backup Script liegt unter “/home/user/backup.sh”.
Fügt am Ende der Datei folgende Zeile ein:
PATH=/usr/sbin:/usr/bin:/sbin:/bin 0 4 * * * /home/user/backup.sh
Erklärung
1. Stelle: Minute -> 0 2. Stelle: Stunde -> 4 3. Stelle: Tag des Monats -> * 4. Stelle: Monat -> * 5. Stelle: Wochentag -> *
Das Skript wird also jeden Tag nachts um 4 Uhr gestartet.
Alle Befehle zu rsync
https://linux.die.net/man/1/rsync