Verschieben Sie tägliche Backup-Verzeichnisse (erstellt mit rsync) in ein anderes Verzeichnis in derselben Partition

Verschieben Sie tägliche Backup-Verzeichnisse (erstellt mit rsync) in ein anderes Verzeichnis in derselben Partition

Ich habe ein tägliches Rsync-Skript, das meine Daten auf einer externen Festplatte unter /mnt/X(Stammverzeichnis der Festplatte) sichert. Ich verwende --link-destHardlinks und vermeide so die Duplizierung von Daten. Ich muss alle meine täglichen Backups von /mnt/Xnach verschieben /mnt/X/backups, ohne die Hardlinks zu verlieren. Später muss ich das Skript ändern, um im neuen Zielverzeichnis zu sichern, das ist, /mnt/X/backupsund im selben Verzeichnis nach Backups vom Vortag suchen.

Wie würden Sie mir vorschlagen, den Umzug durchzuführen?

Antwort1

Sie müssen nichts Besonderes tun. Einfach:

mv /mnt/X/* to /mnt/X/backups/

(Sie erhalten eine Fehlermeldung, dass Sie sich nicht backupszu sich selbst bewegen können.)

Ein Hardlink ist im Grunde eine Inode-Nummer. Dateien, die fest verknüpft sind, haben dieselbe Inode-Nummer. Egal, wie Sie sie innerhalb desselben Dateisystems verschieben, die Inode-Nummer ändert sich nicht. Es sind also keine besonderen Maßnahmen erforderlich.

Probieren Sie es zunächst selbst mit einigen einfachen Dateien /tmpaus:

/tmp $ mkdir aa
/tmp $ touch aa/f
/tmp $ ln aa/f aa/g
/tmp $ mkdir aa/new
/tmp $ mv aa/* aa/new
mv: cannot move 'aa/new' to a subdirectory of itself, 'aa/new/new'
/tmp $ ls -il aa/new/
13185910 -rw-r--r-- 2  0 Apr 11 13:32 f
13185910 -rw-r--r-- 2  0 Apr 11 13:32 g

verwandte Informationen