Sto usando rsync (1) per mantenere aggiornato un repository debian locale. Di recente, il disco che sto utilizzando per archiviarlo ha iniziato a funzionare in modo insufficiente, quindi ho deciso di utilizzare i collegamenti simbolici per consentirmi di spostare alcune directory su un altro disco di dimensioni simili.
Sfortunatamente, sembra che rsync stia eliminando i collegamenti simbolici e riempia il disco quasi pieno. Dopo alcune ricerche, ho scoperto l' --keep-dirlinks
opzione per rsync, che sembra fatta su misura per risolvere il mio problema.
Solo non lo fa. I collegamenti simbolici sulla destinazione vengono ancora eliminati.
Ecco il mio comando rsync:
rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
--delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
$RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/
Gli EXCLUDE si espandono per eliminare un gran numero di architetture che non mi interessano, sulla falsariga di --exclude binary-alpha/ --exclude disks-alpha ...
. Prima che rsync venga avviato, la mia directory del pool è simile alla seguente:
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
Una volta che rsync entra in gioco, ottengo questo:
receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/
E così via, e i collegamenti simbolici vengono sostituiti con directory piene di file.
Alcune delle altre opzioni di rsync interferiscono --keep-dirlinks
? Quali non posso combinare? O è l'ordine delle opzioni che sta causando il mio problema?