Я використовую rsync (1) для оновлення локального сховища debian. Нещодавно диск, який я використовую для його зберігання, почав бракувати місця, тому я вирішив використати посилання, щоб дозволити мені перенести деякі каталоги на інший диск подібного розміру.
На жаль, схоже, що rsync видаляє символьні посилання та заправляє майже повний диск. Після деяких пошуків я виявив --keep-dirlinks
можливість rsync, який, начебто, зроблений спеціально для вирішення моєї проблеми.
Тільки це не так. Символьні посилання на ціль все ще видаляються.
Ось моя команда rsync:
rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
--delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
$RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/
ВИКЛЮЧЕННЯ розширюються, щоб усунути велику кількість архітектур, які мене не цікавлять --exclude binary-alpha/ --exclude disks-alpha ...
. Перед запуском rsync мій каталог пулу виглядає так:
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
Як тільки rsync запускається, я отримую це:
receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/
І так далі, і символьні посилання замінюються на каталоги, наповнені файлами.
Чи заважають деякі інші параметри rsync --keep-dirlinks
? З якими я не можу поєднувати? Або порядок варіантів викликає мою проблему?