Ich verwende rsync (1) , um ein lokales Debian-Repository auf dem neuesten Stand zu halten. Vor kurzem hat die Festplatte, auf der ich sie speichere, nicht mehr genügend Speicherplatz. Daher habe ich mich für die Verwendung von Symlinks entschieden, damit ich einige der Verzeichnisse auf eine andere Festplatte ähnlicher Größe verschieben kann.
Leider scheint rsync die Symlinks zu löschen und die fast volle Festplatte wieder aufzufüllen. Nach einiger Suche entdeckte ich die --keep-dirlinks
Option zu rsync, die maßgeschneidert zu sein scheint, um mein Problem zu beheben.
Nur tut es nicht. Die Symlinks auf dem Ziel werden weiterhin gelöscht.
Hier ist mein rsync-Befehl:
rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
--delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
$RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/
Die EXCLUDEs werden erweitert, um eine große Anzahl von Architekturen zu eliminieren, an denen ich nicht interessiert bin --exclude binary-alpha/ --exclude disks-alpha ...
. Vor dem Start von rsync sieht mein Poolverzeichnis folgendermaßen aus:
lrwxrwxrwx 1 root root 23 2014-09-22 13:58 contrib -> /u2/debian/pool/contrib
drwxrwxr-x 62 root root 4096 2012-04-09 03:02 main
lrwxrwxrwx 1 root root 24 2014-09-22 13:58 non-free -> /u2/debian/pool/non-free
Sobald der Rsync startet, erhalte ich Folgendes:
receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/
Und so weiter, und die Symlinks werden durch Verzeichnisse voller Dateien ersetzt.
Beeinträchtigen einige der anderen Rsync-Optionen --keep-dirlinks
? Welche kann ich nicht kombinieren? Oder ist es die Reihenfolge der Optionen, die mein Problem verursacht?
quelle