Wöchentlicher Rsync mit Anzeige in KDE

Seit meinem letzten Beitrag über Backups hat sich mein Setup etwas verändert. Mittlerweile habe ich einen dedizierten Rechner, der sich die zu sichernden Daten von allen anderen Rechnern holt. Die inkrementellen Backups werden durch Rsnapshot sichergestellt.

Bei meinem Laptop ist das leider keine Option, da ich nicht weiß, ob er zur Zeit des Backups überhaupt an ist. Daher habe ich dafür bislang die Standard-Lösung von Ubuntu Déjà Dup verwendet.

Nach dem Update auf Ubuntu 17.10 „Artful Aardvark“ habe ich allerdings auf KDE gewechselt, weil mir der Gnome-Desktop nicht gefällt. Das hat dazu geführt, dass ich extra für Déjà Dup eine ganze Reihe an Abhängigkeiten aus der Gnome-/Unity-Welt hätte behalten müssen. Das wollte ich nicht. Daher habe ich mich zu einem leicht geänderten Setup entschlossen.

Von meinem Laptop aus synchronisiere ich jetzt die zu sichernden Ordner per Rsync in regelmäßigen Abständen auf den Backup-Rechner. Dort macht Rsnapshot ein inkrementelles Backup daraus.

Damit die Synchronisation automatisiert erfolgen kann, habe ich zuerst einmal einen User auf dem Backup-Rechner angelegt, für den ich einen Public-Key-Login vom Laptop aus eingerichtet habe. (Wenn man ein vollständiges Backup mit Rechten braucht, muss hier der root-User auf beiden Systemen verwendet werden.)

Dann habe ich mir ein kleines Skript geschrieben, welches die eigentlichen Backups ausführt. Damit ich auch mitbekomme, dass etwas passiert, wird das Backup in einem Terminal in KDE angezeigt:

#!/bin/sh

# give the user time to login
sleep 30m

# open all windows on DISPLAY :0
export DISPLAY=:0

##Backups
#home
sudo -u  konsole -p "tabtitle=Backup: Home" -e rsync -rlptDxP --info=progress2 --delete --exclude ".cache" --exclude "Downloads/" --exclude "*Trash/" /home/ @:
#music
sudo -u  konsole -p "tabtitle=Backup: Music" -e rsync -rlptDxP --info=progress2 --delete /mnt/hdd/music @:

Zunächst wartet das Skript eine halbe Stunde, dass der User auch wirklich eingeloggt ist (und es somit auch ein Display :0 gibt). Dann wird dem Skript gesagt, dass es alle grafischen Ausgaben auf Display :0 leiten soll, damit der aktuelle User auch sieht, was passiert. Und schließlich wird das eigentliche Backup durchgeführt.

sudo -u sorgt dafür, dass der Befehl als Benutzer ausgeführt wird.
konsole -p „tabtitle=Backup: Home“ -e Öffnet einen Terminal (Konsole) und führt darin alles hinter dem Parameter -e aus.
Der rsync-Befehl übertragt die Daten aus dem home-Odner auf den Server. Die Parameter sorgen dabei dafür, dass rekursiv übertragen wird (-r), dass Symlinks (-l), Rechte (-p), Zeiten (-t), Devices und spezielle Dateien (-D) erhalten bleiben. -x sorgt dafür, dass keine Dateisystemgrenzen überschritten werden und -P zeigt den Fortschritt an und sorgt für den Erhalt von teilübertragenen Dateien bei einem Abbruch.
–info=progress2 macht, dass der Gesamtfortschritt angezeigt wird und nicht der Fortschritt der aktuellen Datei.
–delete führt dazu, dass Dateien, die im Quellordner fehlen auch im Zielordner gelöscht werden.
Und die –exclude-Parameter schließen einzelne Ordner von der Synchronisation aus.

Das Skript habe ich als /etc/cron.weekly/backupscript gespeichert, damit es einmal wöchentlich ausgeführt wird.

Werbeanzeigen