Kann ich Dateien mit rsync fest verknüpfen, anstatt sie zu kopieren?

511
nnyby

cp -lharte Links, anstatt sie zu kopieren, um Speicherplatz im Dateisystem zu sparen. Ich muss rsync anstelle von cp wegen seiner --excludeFähigkeiten verwenden.

Meine Frage ist also: Wie bekomme ich rsync, um Dateien fest zu verknüpfen, anstatt sie zu kopieren? Natürlich ist dies eine Kopie des lokalen Dateisystems. Ich habe die Docs für rsync's -HOption gelesen, aber es ist mir nicht klar, ob sich dies wie verhält cp -l.

1
Es scheint, dass ich dieses Verhalten mit --Link-dest = $ SOURCE_DIR` erhalten kann: https://slaptijack.com/system-administration/rsync-backups-conserve-disk-space-with-hard-links/ I ' Ich teste das jetzt aus. nnyby vor 5 Jahren 0
Im Allgemeinen wird "rsync" für Backup- oder Archivierungszwecke verwendet. Warum sollten Sie eine Sicherung der Dateinamen ohne deren Inhalt wünschen? AFH vor 5 Jahren 0
@AFH Mein Sicherungsskript erstellt zu vielen Zeitpunkten rollende Sicherungen von Gigabytes an Daten, die meisten dieser Daten sind jedoch gleich. Ich spare Speicherplatz, indem ich diese mit `cp -al` zwischen den Zeitpunkten kopiere. Ohne Hardlinks passen all diese unterschiedlichen Kopien von Daten (wenn es sich um echte Dateien handelt) nicht auf meine 2-TB-Laufwerke. Siehe: https://slaptijack.com/system-administration/rsync-backups-conserve-disk-space-with-hard-links/ nnyby vor 5 Jahren 0
Sie können also versehentliche Löschungen wiederherstellen, nicht jedoch überschreiben, aber Sie können Ihre Sicherungskopie niemals zur Wiederherstellung eines Datenträgerfehlers oder eines Partitionsverlusts verwenden. Ich verwende `cp -au`, das nur geänderte Dateien kopiert. Der Vorgang dauert also nicht allzu lange, aber ich bekomme eine externe Kopie der neuesten Version jeder Datei zu Wiederherstellungszwecken. Um Gigabytes an Daten zu sichern, benötigen Sie natürlich Gigabytes an Speicher, aber wenn Ihre Dateien wichtig sind, müssen Sie diese Investition tätigen. Nur unwichtige Dateien werden definitionsgemäß nicht gesichert. AFH vor 5 Jahren 0

1 Antwort auf die Frage

0
nnyby

Die Antwort hat sich mit der --link-destOption von rsync als Ja erwiesen . Es ist einfach nicht offensichtlich, weil es kein einfaches Ein / Aus-Flag ist cp -l, weil es ein Pfadargument braucht.

So cp -l a/ b/kann man auch so machen:

rsync -a --link-dest=a a/ b/