EDV:Rsync: Difference between revisions

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽
mNo edit summary
mNo edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[EDV:rsync|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 [[EDV:rsync|rsync]], alle Optionen unter ;):
Hier ein paar wichtige Beispiele für [[EDV:rsync|rsync]]. Alle Optionen unter {{IconSmiley04}}:
man rsync
man rsync


Line 10: Line 10:
rsync [options]* [source]+ [destination]
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.
* '''-a, --archive''' (steht für -rlptgoD (kein -H)) 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)
* '''-H, --hard-links''' auch Hardlinks werden mit übernommen (fehlt bei -a wegen des Rechenaufwands)
* '''-n, --dry-run''' Zeigt nur an was gemacht werden würde.
* '''-n, --dry-run''' zeigt nur an was gemacht werden würde
* '''-v, --verbose''' Zeigt zum Beispiel zum Schluss noch eine Statistik an.
* '''-v, --verbose''' zeigt zum Beispiel zum Schluss noch eine Statistik an
* '''-c, --checksum''' verwendet eine Checksumme um Änderungen an Dateien festzustellen (statt timestamp+size).
* '''-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)
* '''-z, --compress''' komprimiert den Datentransfer (falls die Bandbreite nicht so gut ist)
* '''-u, --update''' Ignoriert Dateien die auf dem Empfänger neuer sind als beim Sender.
* '''-u, --update''' ignoriert Dateien, die auf dem Empfänger neuer sind als beim Sender



Um /etc 1:1 nach /data/etc zu kopieren:
Um /etc 1:1 nach /data/etc zu kopieren:
rsync -avH /etc/ /data/etc/
rsync -avH /etc/ /data/etc/


{{Achtung|'''rsync''' reagiert unterschiedlich, je nachdem ob ein / am Ende des Verzeichnisses ist oder nicht!}}
{{Achtung|'''rsync''' reagiert unterschiedlich, je nachdem ob ein / am Ende des Verzeichnisses ist oder nicht {{IconSmiley09}}!}}


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


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



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


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



Nicht mehr vorhandene Dateien auch wieder löschen:
Nicht mehr vorhandene Dateien auch wieder löschen:
Line 50: Line 53:


== Backup ==
== Backup ==
* '''-b, --backup''' Erstellt backups für die Transferierten Dateien (sichert die zu überschreibenden/löschenden Dateien)
* '''-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)
* '''--backup-dir=DIR''' kopiert die Backups anhand der Hierarchie dieses Verzeichnisses (DIR)
* '''--suffix=SUFFIX''' Suffix des Backups (default ~ w/o --backup-dir)
* '''--suffix=SUFFIX''' Suffix des Backups (default ~ w/o --backup-dir)



Bei jedem rsync auch ein incrementelles Backup erzeugen:
Bei jedem rsync auch ein inkrementelles Backup erzeugen:
rsync -av --delete '''--backup --backup-dir=/backup/kip1-inc-`date +"%Y.%m.%d %H:%M:%S"`''' kip1:/etc/ /backup/kip1-etc/
rsync -av --delete '''--backup --backup-dir=/backup/kip1-inc-`date +"%Y.%m.%d_%H:%M:%S"`''' kip1:/etc/ /backup/kip1-etc/


[[Category:EDV_HowTo|Rsync]]
[[Category:Linux|Rsync]]

Latest revision as of 09:03, 2 March 2007

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 Smiley004.png:

man rsync

Allgemeine Optionen

rsync [options]* [source]+ [destination]
  • -a, --archive (steht für -rlptgoD (kein -H)) alles Wichtige, um die Rechte/Nutzer/Links/Devs 1:1 zu übernehmen
  • -H, --hard-links auch Hardlinks werden mit übernommen (fehlt bei -a wegen des Rechenaufwands)
  • -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 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 unterschiedlich, je nachdem ob ein / am Ende des Verzeichnisses ist oder nicht Smiley009.png!

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 existieren
  • --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 Hierarchie dieses Verzeichnisses (DIR)
  • --suffix=SUFFIX Suffix des Backups (default ~ w/o --backup-dir)


Bei jedem rsync auch ein inkrementelles Backup erzeugen:

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