wollentino
Anmeldungsdatum: 29. Januar 2009
Beiträge: Zähle...
|
Hallo, ich brauche mal Hilfe bei den flags von rsync.
Ich möchte Dateien aus dem Ordner „Quelle“ in den Ordner „Ziel“ kopieren und würde gerne folgendes Verhalten erreichen: - Wenn im Zielordner eine alte Version einer Datei vorhanden ist, soll diese einfach überschrieben werden. - Wenn die Datei aus dem Quellordner älter ist soll die Zieldatei nicht überschrieben werden und irgendeine Datei soll mit einem Suffix versehen werden. Ich habe schon ewig herumprobiert und konnte nur das gegenteilige Verhalten erreichen. (neue Versionen im Ziel wurden durch ältere ersetzt aber ältere im Ziel blieben erhalten) Beste Grüße
|
MPW
Anmeldungsdatum: 4. Januar 2009
Beiträge: 3729
|
Hallo wollentino, wollentino schrieb: - Wenn die Datei aus dem Quellordner älter ist soll die Zieldatei nicht überschrieben werden und irgendeine Datei soll mit einem Suffix versehen werden.
das kommt bei einer Sicherung niemals vor. Kann es sein, dass du eigentlich eine Synchronisationssoftware suchst? Rsync ist nur für Sicherungen in eine Richtung gedacht. Trotzdem gibt es dafür eine Option, Zitat aus man rsync : -u, --update skip files that are newer on the receiver Grüße
MPW
|
wollentino
(Themenstarter)
Anmeldungsdatum: 29. Januar 2009
Beiträge: 54
|
Danke für deine Antwort. Dein Tipp mit „-u“ macht aber leider nicht alles was ich möchte. MPW schrieb: Rsync ist nur für Sicherungen in eine Richtung gedacht.
Das ist ja auch bei mir der Fall. Ich will ja keine Dateien vom Ziel auf die Quelle übertragen. Wenn jedoch im Ziel eine neuere Version vorhanden ist soll diese nicht durch die alte Version aus der Quelle überschrieben werden. (die alte Version aus der Quelle soll trotzdem in den Zielordner übertragen werden.)
Und ältere Versionen im Ziel sollen einfach durch neuere Versionen aus der Quelle überschrieben werden. Rsync macht aber genau das Gegenteil, ältere Dateien im Zielordner bleiben bei Verwendung des „-b“-Parameters als Backup erhalten.
|
MPW
Anmeldungsdatum: 4. Januar 2009
Beiträge: 3729
|
wollentino schrieb: Wenn jedoch im Ziel eine neuere Version vorhanden ist soll diese nicht durch die alte Version aus der Quelle überschrieben werden.
Nochmal, das kann bei Backups nicht passieren. Backups legt man in den Schrank und da geht niemand dran. Daher kann die Datei im Backup niemals neuer sein. Sonst hast du ein ungewöhnliches Konzept und rsync greift hier nicht. Auch wenn du zwar sagst, dass du eigentlich nur Backups machen möchtest, guck dir Mal unison an, das kann eigentlich alles, was du brauchst. Du musst dann nur aufpassen, dass du im Backup nichts löscht, sonst wird das auch lokal gelöscht.
|
HaCeMei
Anmeldungsdatum: 2. August 2010
Beiträge: 2262
|
wollentino schrieb: Wenn jedoch im Ziel eine neuere Version vorhanden ist soll diese nicht durch die alte Version aus der Quelle überschrieben werden. (die alte Version aus der Quelle soll trotzdem in den Zielordner übertragen werden.)
Und ältere Versionen im Ziel sollen einfach durch neuere Versionen aus der Quelle überschrieben werden.
Also musst du zuerst (nur) die neueren Dateien von "Ziel" auf "Quelle" übertragen und dabei die älteren Dateien in "Quelle" per Backup sichern und mit einem passenden Suffix versehen. rsync -aub --suffix _alt /pfad/zum/ziel/ /pfad/zur/quelle/ Danach kannst du dann "normal" von "Quelle" nach "Ziel" synchronisieren rsync -a /pfad/zur/quelle/ /pfad/zum/ziel/
|
wollentino
(Themenstarter)
Anmeldungsdatum: 29. Januar 2009
Beiträge: 54
|
MPW schrieb:
Nochmal, das kann bei Backups nicht passieren. Backups legt man in den Schrank und da geht niemand dran. Daher kann die Datei im Backup niemals neuer sein.
Ich weiß, dass so was i.d.R. nicht vorkommt, aber ich hatte einen defekten Laptop und musste mit einem Ersatzgerät arbeiten und dabei kam es eben zu dieser besonderen Konstellation MPW schrieb: Kann es sein, dass du eigentlich eine Synchronisationssoftware suchst?
Ja, ich hatte auch nach einer Software zum folder mergen gegoogelt und überall wurde rsync empfohlen. Ich hatte heute Vormittag auch schon Unison und Conduit ausprobiert und beide konnten mein Problem nicht lösen bzw. Unison hat nur eine Fehlermeldung ausgespuckt. @HaCeMei Danke ich werde das gleich mal ausprobieren. Edit: mit der Hilfe von HaCeMei hat es funktioniert. Danke!
|
MPW
Anmeldungsdatum: 4. Januar 2009
Beiträge: 3729
|
Unison funktioniert sehr zuverlässig bei mir. Was für eine Fehlermeldung hast du erhalten?
|
wollentino
(Themenstarter)
Anmeldungsdatum: 29. Januar 2009
Beiträge: 54
|
transport failure
• Failed to set permissions of file /mnt/AC666BC6666B8FBE/testordner1/.unison.Unbenannter Ordner.5cfd60d488c50570e88909d73337622d.unison.tmp to rwx-––-: the permissions was set to rwxrwxrwx instead. The filesystem probably does not support all permission bits. If this is a FAT filesystem, you should set the "fat" option to true. Otherwise, you should probably set the "perms" option to 0o1700 (or to 0 if you don't need to synchronize permissions).
Es soll von ntfs auf ntfs kopiert werden. Keine Ahnung, was ich da falsch gemacht habe, das wiki ist mit solchen Aussagen Der Rest des Programms ist selbsterklärend.
auch nicht wirklich hilfreich.
|
MPW
Anmeldungsdatum: 4. Januar 2009
Beiträge: 3729
|
Was du falsch gemacht hast? NTFS benutzt. Teste es Mal auf ext[2-4]. Auch wenn die Implementierung besser geworden ist, NTFS unter Linux mounten ist nur ein Notbehelf. Das Linuxdateisystem ist ext[2-4] oder wohl bald btfrs.
|
wollentino
(Themenstarter)
Anmeldungsdatum: 29. Januar 2009
Beiträge: 54
|
MPW schrieb: Was du falsch gemacht hast? NTFS benutzt.
Ja ich wollte tatsächlich auf eine NTFS-Partition kopieren. MPW schrieb:
Auch wenn die Implementierung besser geworden ist, NTFS unter Linux mounten ist nur ein Notbehelf. Das Linuxdateisystem ist ext[2-4] oder wohl bald btfrs.
Und warum steht dann im Softwarecenter: „Dateiabgleichswerkzeug für unix und windows mit gtk+-oberfläche“ „... Es läuft auf Windows und vielen UNIX-Plattformen und kann zwischen diesen abgleichen.“ Ist es dann überhaupt empfehlenswert mit rsync auch ein backup der NTFS-Partitionen mit anzufertigen?
|
Lookbehind
Anmeldungsdatum: 28. Januar 2010
Beiträge: 1070
|
Hallo wollentino, die Beschreibung ist nicht wirklich falsch. Du kannst mit rsync sehr wohl Daten von verschiedenen Dateisystemen auf jeweils andere kopieren. Auch von NTFS auf ext4 oder anders herum. Ob das für Backup-Zwecke sinnvoll ist, steht aber auf einem anderen Blatt. Von NTFS auf Linux-Dateisysteme (ich nenne da meistens ext4, gibt aber natürlich noch jede Menge andere) ist dabei meistens das kleinere Problem. Andersherum geht oft vieles verloren. Zum Beispiel die Zugriffsrechte, oder Spezial-Dateien wie FiFos. Einfach weil NTFS sowas nicht abbilden kann, oder zumindest nicht auf die gleiche Art. (Obwohl, ich glaub FiFos kann NTFS sogar, aber Hardlinks nicht? *kratz* Irgendwie so... Ach dieses Sieb das mal ein Gedächtnis war...) Wenn du deine Backups dennoch auf NTFS-Datenträgern speichern möchte, gibt es da einige gängige Tricks, um das trotzdem vernünftig hin zu bekommen. Einer davon ist, die Dateien in Archive zu verpacken. Wenn es dir allerdings lediglich darum geht, deine Arbeits-Daten von deinem Linux-Rechner auf den Windows-Rechner zu transferieren, oder anders herum, dann solltest du mit rsync ausreichend bedient sein.
|
Hefeweiz3n
Moderator, Webteam
Anmeldungsdatum: 15. Juli 2006
Beiträge: 5813
Wohnort: Ankh-Morpork
|
Doch, Hardlinks kann NTFS auch. Aber viele der Special Devices kann man nicht abbilden (Die sollte man auch meistens eh nicht versuchen zu "sichern" 😀). Am schwersten wiegt einfach die komplett unterschiedlichen Rechte-Verwaltung. Unix-Dateirechte und ACLs kann man einfach nicht rüberkopieren, auch wenn letztere den Windows-ACL angelehnt und auch teilweise kompatibel sind (Weil sie ja gerade für das Samba-Umfeld auch geschaffen wurden). Deshalb: Für Backups von Linux-Systemen auch Festplattenpartitionen nutzen die ein Linux-Dateisystem haben. Oder in einem zusätzlichen Schritt die dann fehlenden Metadaten separat sichern. BackInTime z.B. sichert die Zugriffsrechte in eine zusätzliche Textdatei und ist dadurch gut mit NTFS zu benutzen. Das fügt dann aber natürlich sowohl dem Backup- als auch Restore-Prozess diesen zusätzlichen Schritt hinzu. Will man nur ein paar Dateien wiederherstellen kann das manuelle heraussuchen der richtigen Berechtigungen dann auch etwas Zeit in anspruch nehmen wenn man es nicht mit Scripten automatisiert. All das erklärt aber leider auch nicht warum rsync bei NTFS ⇒ NTFS fehlschlägt ☹.
|