staging.inyokaproject.org

rsync --av --delete --link-dest=/quelle quelle ziel macht lokal keine Hardlinks

Status: Ungelöst | Ubuntu-Version: Ubuntu MATE 22.04 (Jammy Jellyfish)
Antworten |

CDrewing

Avatar von CDrewing

Anmeldungsdatum:
6. November 2007

Beiträge: Zähle...

Hallo an alle Cracks,

bislang hardlinke ich meine Backupquellen in mein Backupverzeichnis per cp -al quelle1 quelle2 [..] ziel. Das ist ein bisschen nervig, denn wenn an der Quelle eine Datei gelöscht wird, dann muss ich als Schritt davor zunächst das Ziel löschen und dann nochmal cp wie oben durchlaufen lassen. Viel schöner wäre es, wenn rsync Hardlinks könnte. Kann es ja. Dachte ich.

1
rsync --av --delete --link-dest=quelle quelle ziel 

macht lokal aber keine Hardlinks (stattdessen Kopien), ich habe die inodes gecheckt. Was mache ich falsch? Was ich eigentlich will ist ein komplettes Backupverhalten von rsync (Neues hinzufügen, Gelöschtes löschen, Rest = idle) - nur halt nicht mit lokalen Kopien sondern mit Hardlinks. Aber ganz genau das tut er nicht.

Vielen Dank für Eure Hilfe.

san04

Anmeldungsdatum:
19. Januar 2010

Beiträge: 1268

Hi,

hab gerade keine Zeit es auszuprobieren, aber im Wiki steht, dass bei --link-dest der absolute Pfad angegeben werden muss. Scheint nicht ganz zu stimmen (in der Manpage steht was anderes), aber hast du das mal probiert?

juribel

Anmeldungsdatum:
20. April 2014

Beiträge: 1269

Die Angabe zu --link-dest im Wiki trifft nicht zu.

Man kann natürlich einen absoluten Pfad angeben. Wenn man aber einen relativen Pfad angibt, bezieht sich dieser nicht auf den aktuellen Ordner (working directory), in dem das Skript aufgerufen wurde, sondern die Pfadangabe ist relativ zum Ziel-Ordner.

Ob dein Konstrukt "... --link-dest=quelle quelle ziel" funktionieren kann, kann ich mir nicht vorstellen. --link-dest ist ja der Vergleichs-Ordner, mit dessen Hilfe festgestellt werden soll, ob Hardlinks oder Kopien erstellt werden sollen. Wenn das überhaupt so funktioniert, müsste es heissen "... link-dest=ziel quelle ziel".

Machst du kein inkrementelles Backup? Das hier im Wiki beschriebene "Backup-Skript mit rsync" legt zum Beispiel für jede Sicherung einen neuen Ordner mit dem Tagesdatum als Name an, und erstellt zum Ende der Sicherung einen Link auf diesen Ordner mit dem Namen "last". So lautet der rsync-Befehl dann "... link-dest=../last quelle tagesdatum".

Zu Beginn der Sicherung verweist link-dest=../last also immer auf die vorhergehende letzte Sicherung, und die Quelle wird in einem Ordner mit dem neuen Tagesdatum per Hardlinks gesichert; neue/geänderte Dateien werden kopiert, und für fehlende Dateien werden die Hardlinks entfernt.

Nur noch kurz zum Datenvolumen für tägliche inkrementelle Sicherungen. Das Volumen meiner zu sichernden Daten beträgt ca. 600 GBytes. Trotzdem passen auf meine externe 2TB-Platte Hunderte von Tagessicherungen. Ordner, die älter als ein halbes Jahr sind, lösche ich monatsweise. So habe ich noch über 400 GBytes Platz übrig.

Ist dein Ziel-Ordner lokal? Auf entfernten Ordnern bzw. bei Sicherung auf einen anderen Rechner per ssh funktionieren Hardlinks nicht, soweit ich mich erinnere.

Antworten |