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
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).
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
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
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/
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/
# 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/
# rsync --stats -CrlDWv --inplace --safe-links --delete --delete-excluded /Quelle/ /Ziel/
⇒ grsync