Benutzer-Werkzeuge

Webseiten-Werkzeuge


rsync

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
rsync [2018-10-18 08:11:56] – [Syntax] manfredrsync [2022-05-06 14:52:24] (aktuell) – [Dateien von der Sicherung ausschließen] manfred
Zeile 1: Zeile 1:
 +====== rsync ======
 +
 +  * [[http://samba.anu.edu.au/rsync/]]
 +  * [[https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC/]]
 +
 +siehe auch: [[rsnapshot]]
 +
 +
 +===== Beispiele =====
 +
 +==== Syntax ====
 +
 +Das wichtigste ist, zu wissen, dass man besonders auf die Verwendung des "/" beim Quellverzeichnis achten muss!
 +
 +in diesem Beispiel wird das komplette Unterverzeichnis "///daten/heute//" unterhalb von "///sicherung//" kopiert => "///sicherung/heute//":
 +  # rsync -a /daten/heute /sicherung
 +
 +in diesem Beispiel wird dagegen nur der Inhalt von "///daten/heute//" in das Verzeichnis "///sicherung//" kopiert => "///sicherung//":
 +  # rsync -a /daten/heute/ /sicherung
 +
 +diese beiden Kommandozeilen bewirken das gleiche:
 +  # rsync -a /daten/heute /sicherung
 +  # rsync -a /daten/heute/ /sicherung/heute
 +
 +hier wird ein Abgleich durchgeführt (Dateien werden hier immer "ganz" übertragen => ''-W''), alle Daten die in ''/mnt/daten/'' liegen werden nach ''/daten/'' übertragen, wobei die neueren Dateien unter ''/daten/'' **nicht** überschrieben werden (=> ''-u''):
 +  # rsync -Wau /mnt/daten/ /daten/
 +
 +
 +==== Sicherung übers Netz ====
 +
 +Mit dem Parameter "-z" wird der Datenstrom komprimiert übers Netz geschoben und mit "-e" wird die //Shell// auf dem entfernten Rechner ausgewählt (meistens SSH).
 +
 +das komplette Verzeichnis ''daten'' vom entfernten Rechner abholen und lokal unter ''/var/lib/mysql/'' ablegen:
 +  # rsync -Wauve ssh 192.168.1.33:/var/lib/mysql/daten /var/lib/mysql/
 +
 +lokales Verzeichnis auf entfernten Rechner sichern:
 +  # rsync -avze ssh /daten/heute benutzer@rechner.de:/sicherung
 +
 +die Webdaten des entfernten Rechners sollen auf diesen Rechner kopiert werden:
 +  # rsync -avze ssh benutzer@rechner.de:/var/www/ /var/www
 +
 +wenn die Zeichensätze auf beiden Rechnern unterschiedlich sind, dann behebt man das Problem am besten so:
 +  # rsync --iconv=UTF-8,CP1252 -avze ssh benutzer@rechner.de:/var/www/ /var/www
 +
 +Hierbei werden die Daten vom Windoofs-Rechner (CP1252) auf den lokalen Linux-Rechner (UTF-8) kopiert.
 +
 +will man das Netzwerk nicht zu stark belasten, dann begrenzt man die verwendete Bandbreite mit der Option "-''''-bwlimit":
 +  # rsync --bwlimit=10240 -avze ssh benutzer@rechner.de:/var/www/ /var/www
 +
 +
 +==== lokale Sicherung auf eine gemountete Platte ====
 +
 +Sollen dabei auch die lokalen Dateien gelöscht werden, die sich nicht auf dem entfernten Rechner befinden,
 +dann geht das so:
 +  # rsync -av --progress --delete /daten/heute /sicherung
 +
 +
 +=== Dateien von der Sicherung ausschließen ===
 +
 +  # rsync [OPTIONEN] --exclude="*.cs" --exclude="*.fs" --exclude="*.vb" /daten/heute/ /sicherung/heute/
 +  oder
 +  # rsync [OPTIONEN] --exclude={"*.cs","*.fs","*.vb"} /daten/heute/ /sicherung/heute/
 +
 +  # rsync [OPTIONEN] --exclude="*.[cfv][sb]" /daten/heute/ /sicherung/heute/
 +
 +Datei + Verzeichnisse ausklammern:
 +  # rsync [OPTIONEN] --exclude={'file1.txt','dir1/*','dir2'} /daten/heute/ /sicherung/heute/
 +
 +
 +=== Verzeichnisse von der Sicherung ausschließen ===
 +
 +Wenn also Daten vom Verzeichnis /daten/heute/ nach /sicherung/heute/ gesichert werden sollen und dabei das Verzeichnis /daten/heute/temp/ nicht berücksichtigt werden soll, dann geht das so:
 +  # rsync [OPTIONEN] --exclude=temp/ /home/user/daten/ /home/user/backup/
 +
 +Möchte man außerdem bestimmte Dateien von der Sicherung ausnehmen, dann müsste der Befehl so aussehen:
 +  # rsync [OPTIONEN] --exclude=temp/ --exclude=*. /daten/heute/ /sicherung/heute/
 +
 +
 +==== einfache Beispiele ====
 +
 +wenn beide Verzeichnisse sich auf der selben Partition befinden, kann man mit Hardlinks arbeiten, das geht schneller:
 +  # rsync --stats --numeric-ids -CaHW --inplace --delete /daten/heute/ /sicherung/heute/
 +
 +in der Praxis befinden sich die beiden Verzeichnisse fast immer auf unterschiedlichen Partitionen:
 +  # rsync --stats --numeric-ids -aW --inplace --delete /daten/heute/ /sicherung/heute/
 +
 +
 +==== etwas aufwendigere Beispiele ====
 +
 +  # rsync -CarlDHWv --progress --stats --inplace --delete --delete-excluded /Quell/Verz/ /Ziel/Verz/
 +  # rsync -CcarlDHWv --progress --stats --inplace --delete --delete-excluded /Quell/Verz/ /Ziel/Verz/
 +
 +  # rsync --stats --numeric-ids --bwlimit=10240 -CaHW --inplace --delete --delete-excluded --exclude '/.gvfs' /home/ich/ root@backup:/sicherungen/ich/
 +
 +  # rsync --stats --numeric-ids --bwlimit=10240 -CaHW --inplace --delete --delete-excluded --exclude '*.tar.gz' --exclude '*exe' --exclude '*solaris*' --exclude '*Solaris*' --exclude '/OpenSuse*' --exclude '/fedora/' --exclude '*.rpm' --exclude '/Mail/' --exclude '*.bundle' --exclude '*.zip' /Quelle/ /Ziel/
 +
 +  # rsync --stats --numeric-ids --bwlimit=10240 -aW --inplace --delete --delete-excluded --filter='- *.tar.gz' --filter='- *exe' --filter='- *solaris*' --filter='- *Solaris*' --filter='- /OpenSuse*' --filter='- /fedora/' --filter='- *.rpm' --filter='- /Mail/' --filter='- *.bundle' --filter='- *.zip' --filter='+ /**/' --filter='+ *.txt' --filter='+ *.doc' --filter='+ *.od*' --filter='+ *.xls' --filter='+ *.sh' --filter='+ *.htm*' --filter='+ *.cfg' --filter='+ *.pdf' --filter='+ *conf*' --filter='+ *.exe' --filter='+ *.rss' --filter='+ *.c' --filter='+! *.*' --filter='- *' /Quelle/ /Ziel/
 +
 +dieser Aufruf ist mein Favorit, hier wird das Unterverzeichnis "''Verz''" vom "''/Quell''" zum "''/Ziel''" synchronisiert:
 +  # rsync -AaCgHlopStWX --stats --numeric-ids --inplace --delete --force-delete --delete-excluded --exclude /das/verz/nicht --exclude /dieses/Verz/auch/nicht --exclude /nicht/das/verz /Quell/Verz/ /Ziel/Verz/
 +
 +
 +==== wenn das Ziel keine Dateirechte unterstützt ====
 +
 +  # rsync --stats -CrlDWv --inplace --safe-links --delete --delete-excluded /Quelle/ /Ziel/
 +
 +
 +==== Percona-Xtradb-Cluster-5.7 (Galera - SST) ====
 +
 +  # rsync --owner --group --perms --links --specials --ignore-times --inplace --recursive --delete --quiet --whole-file --exclude */ib_logfile* /var/lib/mysql/data/./dialing/ rsync://server01.lan:4444/rsync_sst/./datenbank
 +
 +
 +===== Grafische Benutzeroberfläche =====
 +
 +=> grsync
 +