![]() |
|
|
|
#1 |
|
Registered User
Registrierungsdatum: Aug 2005
Beiträge: 261
|
rsync und mod-time
Hallo zusammen
Ich habe hier ein kleines Problemchen mit rsync und obwohl das ganze auf einem Linux-Server läuft, denke ich, werde ich hier die kompetentesten Antworten erhalten - rsync gibt es ja auch unter *BSD. ![]() Folgendes Szenario: Ich habe die alten Backupdaten Daten-B nach Daten-A kopiert. Leider gingen alle mod-time Attribute verloren und alle Timestamps von Daten-A sind jetzt auf das Datum des cp-Befehls gesetzt. ![]() Daraufhin wurde mit Daten-A weitergearbeitet und erst ein paar Tage später fiel mir mein Missgeschick auf. Problem: Wie kann ich alle Timestamps der Dateien von Daten-B in Daten-A übernehmen, aber ohne dass die Änderungen verloren gehen? Lösungsansatz: Vielleicht kann ich mit rsync zuerst eine Kopie (Daten-Temp) von Daten-B erstellen, dann mit rsync alle geänderten Dateien in Daten-A nach Daten-Temp syncen - wobei hier wirklich nur die tatsächlich geänderten Dateien angefasst werden dürften!! - und wenn alles gut aussieht, Daten-Temp nach Daten-A syncen. Nur wie mach ich das? ![]() Code:
![]() Die Frage ist hier vor Allem, welche der rsync-Optionen die richtige ist: -c oder irgend eine --ignore-Times-Option? Ich hoffe, jemand kann mir auf die Sprünge helfen. ![]() -- Dinh --
__________________
$ god god: not found |
|
|
|
|
|
#2 |
|
Registered User
Registrierungsdatum: Aug 2005
Beiträge: 261
|
Ich glaube, ich habe eine Lösung:
Code:
-- Dinh -- EDIT: weiss jemand, wie viel länger das mit -c dauert? Es handelt sich um > 60GB und mehrere 100'000 Dateien. ![]()
__________________
$ god god: not found Geändert von Dinh (11.09.2007 um 16:18 Uhr). |
|
|
|
|
|
#3 |
|
aka uqs
Registrierungsdatum: Feb 2003
Beiträge: 2.024
|
Du kannst keine allgemeine Loesung dafuer finden, denn woher soll er wissen, welchen Timestamps er trauen kann? Ich wuerde folgenden Ansatz verfolgen
mit find(1) und stat(1) die mtime der alten Dateien extrahieren. Mit find(1) und stat(1) die mtime der neuen Dateien extrahieren. Dat ganze mit join(1) auf die Form "alt neu pfad" bringen. Nun hast du eine ganze Latte von Timestamps in Spalte 2, welche zwischen X und X+t liegen (die Dauer deines urspruenglichen cp(1)). Die kannst du bequem mit awk(1) rausfiltern und schliesslich ein touch(1) -t alt pfad pro Zeile laufen lassen. Du solltest die Timestamps ueber stat(1) gleich in %y%m%d%H%M%S ausgeben, weil touch(1) das so will. Falls du da noch Hilfe brauchst, das ist schnell realisiert, sowas. |
|
|
|
|
|
#4 |
|
Registered User
Registrierungsdatum: Aug 2005
Beiträge: 261
|
Danke für deine Antwort. Das klingt für mich aber unendlich kompliziet und fehleranfällig!
![]() Warum nicht einfach so, wie in meinem zweiten Post beschrieben? Im Backup stimmen ja die Timestamps. Code:
Jetzt muss ich nur noch irgendwie alle stattgefundenen Änderungen von meinen Daten aufs Backup übertragen - wobei rsync nicht auf die Zeiten schauen darf. Gelöschte Dateien sollen auch gelöscht werden etc: Code:
Theoretisch sollte das temp-Verzeichnis dann genau eine Kopie des Data-Verzeichnis sein, ausser dass alle Dateien, die in Data und Backup identisch sind, die Timestamps von Backup kriegen. Meine Unix-Kentnisse sind aber noch nicht so fundiert und ich hab Angst, die Daten zu zerstören... -- DInh --
__________________
$ god god: not found |
|
|
|
|
|
#5 | ||
|
aka uqs
Registrierungsdatum: Feb 2003
Beiträge: 2.024
|
Zitat:
Zitat:
Dann hast du zwar wieder "falsche" Timestamps, wenn du nicht auch -t angibst. Aber ob das mit -c genau das tut was du brauchst, das musst du in ner Sandbox testen. |
||
|
|
|
|
|
#6 | ||
|
Registered User
Registrierungsdatum: Aug 2005
Beiträge: 261
|
Zitat:
Zitat:
Als ich das mit ein paar Daten testete, hab ich festgestellt, dass -t dazu führt, dass dann doch wieder die Timestamps übernommen werden. Auch bei den nicht übertragenen Dateien. Ich werd' jetzt mal ein paar ausführliche Test mit einem Teil der Daten machen. Danke soweit. ![]()
__________________
$ god god: not found |
||
|
|
|
![]() |
| Dieses Thema betrachten zurzeit 1 Personen. (0 registrierte Benutzer und 1 Gäste) | |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| rsync - Modul vs. Pfadname | testit | FreeBSD - Anwendungen und Ports | 1 | 29.05.2006 18:18 |
| rsync mit "connection unexpectedly closed" | MarcoHensel | FreeBSD - Anwendungen und Ports | 2 | 16.05.2006 06:56 |
| Security Advisory: rsync Server | asg | News | 1 | 05.12.2003 08:29 |
| Ogle hat Start-Probleme mit Video DVD | raziel | NetBSD - Anwendungen | 7 | 06.10.2003 11:12 |