Moin, folgendes Problem: Ich kopiere riesige Datenbestände (Millionen Dateien) zwischen zwei Raid-Arrays. Leider ist mir zwischendurch bei dem einen der Netzwerkstecker rausgefallen (übers Kabel gestolpert). Dadurch ist natürlich der Kopierbefehl abgebrochen worden. Was für Möglichkeiten gibt es, außer kpl. neu zu starten? Das würde nämlich ca. 50 Stunden dauern. Ach ja, abgebrochen habe ich natürlich nicht nach drei Stunden, sondern nach 45. Ich bräuchte jetzt eine sinnvolle und effiziente Methode, mit der ein Kopier-Befehl vorher nicht nur prüft, ob die Datei schon vorhanden ist, sondern auch, ob sie die gleiche Größe hat, und nur dann kopiert, wenn sie entweder noch nicht da ist oder zu klein ist.
Für sowas nimmt man doch rsync. So zB mache ich inkrementelle Backups meines Servers:
1 | rsync -av --progress --delete --exclude=.... fileserver/ /media/fileserver-backup/ |
-a heißt archive mode -v verbose mode --progress zeigt den Verlauf an --delete löscht auf dem Ziel Dateien, die auf der Quelle nciht mehr vorhanden sind --exclude läßt angegebene Ordner von der Sicherung aus Näheres erfährst du in der Manpage.
Bei rsync keinesfalls Quelle und Ziel vertauschen!
cp -avrPu -u prüft ob die Datei auf dem Ziel älter ist, bevor er sie kopiert. Gruss Axel
Naja, bei einem Backup wird wohl die Zieldatei kaum neuer als die Quelldatei sein ;-)
>Naja, bei einem Backup wird wohl die Zieldatei kaum neuer als die >Quelldatei sein ;-) Nö, ist schon korrekt: Der Sinn beim -u ist hier, dass die neue Datei nur dann kopiert wird, wenn sie noch nicht existiert oder wenn die Date auf dem Backupmedium einen älteren Zeitstempel hat (die Quelldatei also seit dem letzten Backup verändert wurde) Gruss Axel
Okay, das ist bei Systembackups auf jedenfall sinnvoll, stimmt. Da mein Server nur Filme und Musik beinhaltet, brauche ich die Option nicht zwingend, schaden kann sie natürlich auch nicht.
Axel Laufenberg schrieb: >>Naja, bei einem Backup wird wohl die Zieldatei kaum neuer als die >>Quelldatei sein ;-) > > Nö, ist schon korrekt: > > Der Sinn beim -u ist hier, dass die neue Datei nur dann kopiert wird, > wenn sie noch nicht existiert oder wenn die Date auf dem Backupmedium > einen älteren Zeitstempel hat (die Quelldatei also seit dem letzten > Backup verändert wurde) Könnte natürlich sein, das dadurch der komplette Kopiervorgang länger dauern wird als ohne diese Option...
>Könnte natürlich sein, das dadurch der komplette Kopiervorgang länger >dauern wird als ohne diese Option... Wieso denn das ? Es werden nur die Dateien kopiert, die tatsächlich neu sind. Alle anderen nicht. Wie soll das länger dauern ? Gruss Axel
Nur wird das mit den Zeitstempeln womöglich bei einer Datei nicht hinhauen: die, die gerade in Arbeit war, als die Verbindung abbrach. Ich würde hinterher über beide Dateibäume eine md5-Summe berechnen und die Summendateien vergleichen.
Das gibt auch als Option, dass rsync statt Zeitstempel die Prüfsummen vergleicht.
1 | rsync -c .... |
Also wenn ich mal nachrechne, 17:00 Feierabend - 8:00 arbeitsbeginn, macht 63 Stunden bis Montag früh. Alles löschen, komplett neu kopieren und ins Wochenende gehen :-) rsync ist aber auch nicht verkehrt...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.