Hallo Zusammen. Zu Backup zwecken habe ich mir eine Grosse Festplatte zugelegt mit der Ich die Daten von verschiedenen Maschinen sichern möchte. Diese haben teilweise die Selben Dateien. Daher möchte ich gerne den benötigten Platz auf der Backupplatte etwas reduzieren indem ich diese Dopelten Dateien durch Hardlinks ersetze. Kann mir wer sagen wie ich das machen kann?
Gleiche Dateien Finden und durch Hardlinks ersetzen.
Anmeldungsdatum: Beiträge: 1928 |
|
||
Projektleitung
Anmeldungsdatum: Beiträge: 12832 |
Ich würde erst mal schauen, ob es Backupsoftware gibt, die das hergibt. Ansonsten würde ich es vermutlich so machen: alle Dateien suchen und nach gleicher Größe gruppieren. In jeder Gruppe (außer Länge = 0) würde ich für alle Dateien den MD5 oder SHA256 ermitteln. Dann die Dateien mit dem selben Hash über den Hardlink zusammen legen. Bei dem Verfahren verlierst Du allerdings auch die unterschiedlichen Metadaten (Zugriffszeit, Zeit der letzten Änderung, Berechtigungen usw.). Wenn Du das verhindern willst, musst Du nicht nur nach Größe gruppieren sondern die Meta-Daten, die Du erhalten willst, ebenfalls einbeziehen. Ciao robert Edit: PS: Ich würde das nicht in einem Shell-Skript sondern mit Ruby oder Python machen. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1928 |
Auf die Metadaten kommt es mir nicht an. Könnte man vielleicht irgendwie die Kopierfunktion in Nautilus so anpassen, dass er da Hardlinks erzeugt? Grundsätzlich ist alles so organisiert, dass alles was den selben Namen trägt auch die selbe Version einer Datei ist. |
||
Projektleitung
Anmeldungsdatum: Beiträge: 12832 |
Natürlich, es ist Software. Ich halte das aber für eine schlechte Idee. Wenn Du das generell so machst, bekommst Du nie Kopien. Wenn Du dann eine Datei kopierst, um die Kopie zu ändern, änderst Du auch immer das Original.
Ja, das macht die Sache leichter. Das ist doch prima. Was hat denn Deine Suche nach Backup-Programmen ergeben? |
||
Anmeldungsdatum: Beiträge: 187 |
Ich würde mir mal fdupes ansehen. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1928 |
rklm Ich hab da mal nachgesehen, jedoch nichts passendes gefunden. Wobei eine Lösung welche bei jedem ausführen einen neuen Ordner erstellt in welchem geänderte Daten enthalten und der Rest als Hardlink ergänzt wird dafür sorgt, dass man bei inkrementellen Backups dennoch einen vollständigen Ordner hat genial finde und für andere Zwecke im Hinterkopf halte. Mooi Volltreffer auf Umwegen. Ich habe mir fdupes mal angesehen und danach im Internet gesucht. Das Programm selbst listet mir ja nur die Dateien auf. Im Internet bin ich dann aber auf den folgenden Heise Artikel gestossen. http://www.heise.de/ix/artikel/Entdoppeltes-Lottchen-506814.html. Das hat mich motiviert im Softwarecenter nach den Programmen zu suchen. Leider fehlen die welche Hardlinks setzen würden. Dafür bin ich dann nach mehrmaligem anpassen der suche im Softwarecenter auf rdfind gestossen. Es macht genau das was ich will. Danke für eure Hilfe. |
||
Projektleitung
Anmeldungsdatum: Beiträge: 12832 |
👍
Interessant! Der Algorithmus ist so ähnlich wie das, was ich vorgeschlagen habe. Zusätzlich schaut er sich die Bytes am Anfang der Datei an, bevor er den Hash berechnet. Das ist schlau. Ich würde mir aber sparen, die letzten Bytes auch noch zu lesen - oder nur die letzten lesen. Ich finde allerdings, dass da ein paar Sortierungen zu viel vorkommen. Aber verglichen mit IO ist das natürlich immer noch billig. Die Aufwandsabschätzung O(N*log(N)) scheint mir allerdings zu rosig: das bezieht sich m.E. nur auf die Operationen im Speicher und lässt IO außen vor. M.E. liest der Algorithmus im schlimmsten Fall alle Dateien komplett, nämlich genau dann, wenn alle Dateien die selbe Länge haben und in führenden und schließenden Bytes übereinstimmen. Im Schnitt wird natürlich viel weniger IO erzeugt. Das reizt mich ja jetzt fast, so etwas mal in Ruby zu implementieren... 😛 Bis dann robert |
||
Ehemalige
Anmeldungsdatum: Beiträge: 3802 |
Ich weiß, du hast bereits eine Lösung, aber Storebackup könnte das recht einfach. |
||
Anmeldungsdatum: Beiträge: 187 |
Tipp: Im Quellcode einer Webseite findet man manchmal das Erstellungsdatum. Die verlinkte Heise-Seite zeigt:
2007 ist jetzt nicht wirklich aktuell. fdupes kann mittlerweile wesentlich mehr, als nur Dateien auflisten. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 1928 |
Danke Keba das tool scheint perfekt zu sein, echt super danke 👍 |