-> Inter-Data -> Blog -> Dateien mit rsync synchronisieren unter Linux/Unix

Dateien mit rsync synchronisieren unter Linux/Unix

Dateien vom lokalen Linux-Rechner auf einen Linux-Server per `rsync` über SSH zu synchronisieren

Autor: DS

Um zum Beispiel Bilddateien von deinem lokalen Linux-Rechner auf deinen Linux-Server per rsync über SSH zu synchronisieren, kannst du folgenden Befehl verwenden:

rsync -avz -e ssh /pfad/zur/quelle/*.jpg benutzername@serveradresse:/pfad/zum/ziel

Erklärung der Optionen:

  • -a = Archivmodus (bewahrt Dateistruktur, Rechte, etc.)
  • -v = verbose (ausführliche Ausgabe)
  • -z = komprimiert die Daten während der Übertragung
  • -e ssh = verwendet SSH als Transport
  • *.jpg = nur JPEG-Dateien (du kannst auch *.png, *.jpeg, *.gif usw. verwenden)
  • benutzername@serveradresse = dein Benutzername und die IP-Adresse oder Domain deines Servers
  • /pfad/zum/ziel = Zielverzeichnis auf dem Server

Beispiel:

rsync -avz -e ssh ~/Bilder/*.jpg max@123.45.67.89:/home/max/backup_bilder

Falls du ganze Verzeichnisse mit allen Bilddateien synchronisieren willst (rekursiv), wäre das:

rsync -avz -e ssh ~/Bilder/ max@123.45.67.89:/home/max/backup_bilder

Optional: nur bestimmte Dateitypen synchronisieren

rsync -avz -e ssh --include='*/' --include='*.jpg' --exclude='*' ~/Bilder/ max@123.45.67.89:/home/max/backup_bilder

Willst du, dass alte Dateien auf dem Server gelöscht werden, wenn sie lokal gelöscht wurden?

rsync -avz --delete -e ssh ~/Bilder/ max@123.45.67.89:/home/max/backup_bilder

Musst du den SSH-Port in deinem rsync-Befehl anpassen, dann geht es so:

rsync -avz -e "ssh -p 2222" /pfad/zur/quelle/*.jpg benutzername@serveradresse:/pfad/zum/ziel

Weitere Beispiele mit Port 2222:

rsync -avz -e "ssh -p 2222" ~/Bilder/*.jpg max@123.45.67.89:/home/max/backup_bilder

Oder für ein ganzes Verzeichnis:

rsync -avz -e "ssh -p 2222" ~/Bilder/ max@123.45.67.89:/home/max/backup_bilder