EDV:Rsync: Difference between revisions

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽
No edit summary
No edit summary
Line 1: Line 1:
'''rsync''' ist ein nützliches Tool um Dateien von einem Rechner zu einem Anderen zu transferieren,
[[EDV:rsync|rsync]] ist ein nützliches Tool um Dateien von einem Rechner zu einem Anderen zu transferieren,
wenn spezielle Rechte/Dateitypen beibehalten werden sollen.
wenn spezielle Rechte/Dateitypen beibehalten werden sollen.
Außerdem wird '''nicht alles''' transferiert sondern nur Dateien die '''unterschiedlich''' sind!
Außerdem wird '''nicht alles''' transferiert sondern nur Dateien die '''unterschiedlich''' sind!


Hier ein paar wichtige Beispiele für '''rsync''', alle Optionen unter ;):
Hier ein paar wichtige Beispiele für [[EDV:rsync|rsync]], alle Optionen unter ;):
man rsync
man rsync



Revision as of 10:24, 31 October 2006

rsync ist ein nützliches Tool um Dateien von einem Rechner zu einem Anderen zu transferieren, wenn spezielle Rechte/Dateitypen beibehalten werden sollen. Außerdem wird nicht alles transferiert sondern nur Dateien die unterschiedlich sind!

Hier ein paar wichtige Beispiele für rsync, alle Optionen unter ;):

man rsync

Allgemeine Optionen

rsync [options]* [source]+ [destination]
  • -a, --archive (steht für -rlptgoD (kein -H)) Also Quasi alles Wichtige um die Rechte/Nutzer/Links/Devs 1:1 zu übernehmen.
  • -H, --hard-links Auch Hardlinks werden mit übernommen (fehlt bei -a wegen Rechenaufwändig)
  • -n, --dry-run Zeigt nur an was gemacht werden würde.
  • -v, --verbose Zeigt zum Beispiel zum Schluss noch eine Statistik an.
  • -c, --checksum verwendet eine Checksumme um Änderungen an Dateien festzustellen (statt timestamp+size).
  • -z, --compress Komprimiert den Datentransfer (falls mal die Bandbreite nicht so gut ist)
  • -u, --update Ignoriert Dateien die auf dem Empfänger neuer sind als beim Sender.

Um /etc 1:1 nach /data/etc zu kopieren:

rsync -avH /etc/ /data/etc/
rsync reagiert entsprechen anders je nachdem ob ein / am Ende des Verzeichnisses ist oder nicht!

Für ein rsync auf andere Hosts (mit ssh) einfach den Hostnamen mit angeben (ähnlich scp):

rsync -avH kip1:/tmp . 


Exclude

  • --exclude=PATTERN Ignoriert die Dateien die auf PATTERN passen.
  • --exclude-from=DATEI siehe --exclude, aber liest PATTERN von der DATEI
  • --include=PATTERN Dateien die auf PATTERN passen nicht ignorieren!
  • --include-from=DATEI siehe --include, aber liest PATTERN von DATEI

Fast alles kopieren (außer /proc /sys und /var):

rsync -av --exclude=/proc --exclude=/sys --exclude=/var kip1:/ /data/backup-kip1/


Delete

  • --delete Löscht Dateien die nicht bei der Quelle exestiert.
  • --delete-excluded Löscht auch die ignorierten Dateien auf dem Empfänger!
    • --del ein alias für --delete-during
    • --delete-before Dateien erst löschen dann den Rest kopieren (default).
    • --delete-during Dateien mittendrin (wie sie dran kommen) löschen, nicht davor.
    • --delete-after Dateien nach dem Transfer löschen, nicht davor.

Nicht mehr vorhandene Dateien auch wieder löschen:

rsync -av --delete kip1:/etc/ /backup/kip1-etc/


Backup

  • -b, --backup Erstellt backups für die Transferierten Dateien (sichert die zu überschreibenden/löschenden Dateien)
  • --backup-dir=DIR Kopiert die Backups anhand der Hierarchy in dieses Verzeichnis (DIR)
  • --suffix=SUFFIX Suffix des Backups (default ~ w/o --backup-dir)

Bei jedem rsync auch ein incrementelles Backup erzeugen:

rsync -av --delete --backup --backup-dir=/backup/kip1-inc-`date +"%Y.%m.%d %H:%M:%S"` kip1:/etc/ /backup/kip1-etc/