Blog (Tag: home)

Backup mit rsync

Backups tätige ich komplett mit rsync. Um beispielsweise von einem Server aus per SSH eine Kopie des Homeverzeichnisse zu ziehen, benutze ich folgenden Befehl:

rsync -Lauvz --progress -e 'ssh -p 12345' user@host :~/ ~/Backup/

L ermöglicht auch symlinks als Verzeichns bzw. Datei mitzukopieren, die ansonsten auf dem Backup nicht vorhanden wären bzw. mangels passendem Pfad und/oder Rechten nicht angelegt werden könnten.

 a steht für Archive und umfasst eine paar Schalter wie r für rekursive, p für perms, was einem die Nutzerrechte beibehält, g die Gruppenrechte und o für Owner, also Besitzer.

u für update holt die Daten nur bei Änderungen, lässt sie ansonsten auf dem Ziel unverändert.

v für verbose, also geschwätzig, zeigt ein paar mehr Informationen als üblich.

z benutzt die zip-Kompression und spart so ein wenig Platz auf dem Backup.

progress ist sehr interessant, da es jeglichen Fortschritt der Datenübertragung anzeigt, inklusive der Geschwindigkeit.

e ist wichtig, damit man überhaupt das Ganze per ssh übertragen kann. Ich setze den Befehl absichtlich in einfache Anführungszeichen, also als subshell, damit ich auch noch einen anderen Port mitübergeben kann.

Der Rest sollte sich dann von selbst erklären: Server (IP oder Adresse), Quellverzeichnis Zielverzeichnis.

Man kann das Ganze natürlich auch schön in einen cronjob packen, sollte aber vorher wenigstens ein passwortfreies Schlüsselpaar angelegt und per ssh-copy-id den public key an den jeweiligen host übertragen haben, sonst scheitert der cronjob an der Passwortabfrage.

By Matthias