Show pagesourceBack to top Share via Share via... Twitter LinkedIn Telegram Yammer RedditRecent ChangesSend via e-MailPrintPermalink × Table of Contents Verzeichnisangaben Kommandozeilenoptionen Filterregeln Regeln Muster Beispiel Tiefe der Synchronisation begrenzen Nur bestimmte Dateien synchronisieren Client Mac Systemvoraussetzungen Backup des Benutzerverzeichnisses volles System-Backup Server SSH-Nutzern nur Rsync erlauben rsync siehe auch: rsnapshot Verzeichnisangaben Bei Verzeichnissen kopiert rsync mit einem angehängten Slash beim Quellverzeichnis den Inhalt des Verzeichnisses und ohne erstellt es das Verzeichnis neu. Beim Zielverzeichnis ist es egal. Beispiele: Source Destination Ordnerstruktur ./files/dir1/ /backup/dir1 /backup/dir1 ./files/dir1 /backup/dir1 /backup/dir1/ /backup/dir1/dir1 ./files/dir1/ /backup/dir1 /backup/dir1 Kommandozeilenoptionen Switch Beschreibung -a archive mode (kurz für -rlptgoD) -r, –recursive steigt rekursiv in die angegebenen Verzeichnisse ab -l, –links kopiert Symlinks als Symlinks -p, –perms behält Rechte bei -t, –times behält Änderungszeitpunkt bei -g, –group behält Gruppeneigentum bei -o, –owner behält Eigentümer bei -D, –devices –specials behält Geräte- (nur su!) und Spezialdateien bei -n, –dry-run Testlauf -b, –backup Backups überschriebener/gelöschter Dateien anlegen –backup-dir=$dir speichert Sicherungsdateien in angegebenem Ordner –backup-dir=$(date +%F) Backups in ./yyyy-mm-dd/ –delete sollte nur zusammen mit -b verwendet werden! löscht Dateien im Zielverzeichnis, wenn sie im Quellverzeichnis nicht vorhanden sind –max-size=2G verhindert Übertragung von Dateien größer als 2GiB –min-size=256 überträgt keine Dateien <256 Bytes -q, –quiet unterdrückt Ausgaben (z.B. für cron) -z, –compress Dateien beim Transfer komprimieren –progress zeigt Einzelfortschritt an –info=progress2 zeigt Gesamtfortschritt an (erst ab v3.1) -e "ssh -p$port" verbindet über SSH, Beispieloption für den Port –filter=$datei Filterregeln aus Datei lesen Filterregeln Regeln Zeilenbeginn Bedeutung + Inklusion - Exklusion # Kommentar (wird ignoriert) Muster Muster Bedeutung /$file Datei $file im Wurzelverzeichnis $dir/ Verzeichnisse, die $dir heißen Beispiel ~/.rsync-exclude # Filterdatei selbst ausschließen - /rsync-filter.txt # Download-Ordner im Wurzelverzeichnis ausschließen - /Downloads/ # Papierkorb nicht mitsichern - /.Trash*/ # Thumbnails nicht mitsichern - .DS_Store - Thumbs.db # Cache-Ordner **TODO** # "geheime" Dotfiles ausschließen - /.*sh_history # Druckerspooler nicht sichern - /.cups/ # keine Cloud-Ordner sichern - /.dropbox/ - /.dropbox-master/ - /Google\ Drive/ - /Dropbox/ Tiefe der Synchronisation begrenzen Synchronisiert nur bis zu einer Tiefe von 2 Ordnern und nicht weiter: rsync -r --exclude="/*/*/" source/ target/ Je nach gewünschter Tiefe das "exclude" erweitern. Nur bestimmte Dateien synchronisieren rsync -mnrv --include="*/" --include="file_11*.jpg" --exclude="*" /Storage/uploads/ /website/uploads/ -m löscht leere Ordner –include="*/" Geht durch alle Ordner –exclude="*" ignoriert alle Dateien, die nicht inkludiert wurden Client Ein funktionierendes passwortloses SSH-Setup ist von Vorteil. Mac Systemvoraussetzungen rsync 3.0+ muss installiert sein (kein Abgleich von Dateilisten mehr) Backup des Benutzerverzeichnisses /usr/local/bin/rsync -az --progress -e "ssh -pPORT" /Users/BENUTZER/ BENUTZER@SERVER:/backup/BENUTZER/ Wichtig: Slash am Ende des Quell- und Zielverzeichnisses! Kopiert alle Inhalte (Dateien und Unterordner) im Benutzer-Heimatverzeichnis in den Backup-Ordner des Benutzers. Kein Slash = Kopiert das Verzeichnis an sich. volles System-Backup rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder (Quelle) Server rsync 3.0+ muss installiert sein openSSH muss installiert sein es ist nicht empfehlenswert, rsync im Server-Modus laufen zu lassen. Über SSH verliert man nur extrem wenig Geschwindigkeit, aber es ist viel sicherer. SSH-Nutzern nur Rsync erlauben /usr/local/bin/validated-rsync #!/bin/sh case "$SSH_ORIGINAL_COMMAND" in *\&*) echo "Rejected" ;; *\(*) echo "Rejected" ;; *\{*) echo "Rejected" ;; *\;*) echo "Rejected" ;; *\<*) echo "Rejected" ;; *\>*) echo "Rejected" ;; *\`*) echo "Rejected" ;; *\|*) echo "Rejected" ;; rsync\ --server*) $SSH_ORIGINAL_COMMAND ;; *) echo "Rejected" ;; esac Alternative: rrsync ("restricted rsync") Last modified: 2019-12-20 14:21