EDV:Rsync: Difference between revisions
From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽
mNo edit summary |
mNo edit summary |
||
(6 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 |
[[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]] |
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)) |
* '''-a, --archive''' (steht für -rlptgoD (kein -H)) alles Wichtige, um die Rechte/Nutzer/Links/Devs '''1:1''' zu übernehmen |
||
* '''-H, --hard-links''' |
* '''-H, --hard-links''' auch Hardlinks werden mit übernommen (fehlt bei -a wegen des Rechenaufwands) |
||
* '''-n, --dry-run''' |
* '''-n, --dry-run''' zeigt nur an was gemacht werden würde |
||
* '''-v, --verbose''' |
* '''-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''' |
* '''-z, --compress''' komprimiert den Datentransfer (falls die Bandbreite nicht so gut ist) |
||
* '''-u, --update''' |
* '''-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 |
{{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''' |
* '''--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''' |
* '''--delete''' löscht Dateien, die nicht bei der Quelle existieren |
||
* '''--delete-excluded''' |
* '''--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''' |
* '''-b, --backup''' erstellt Backups für die transferierten Dateien (sichert die zu überschreibenden/löschenden Dateien) |
||
* '''--backup-dir=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 |
Bei jedem rsync auch ein inkrementelles Backup erzeugen: |
||
rsync -av --delete '''--backup --backup-dir=/backup/kip1-inc-`date +"%Y.%m.% |
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 :
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 ! |
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/