Estou usando o rsync (1) para manter um repositório debian local atualizado. Recentemente, o disco que estou usando para armazená-lo começou a ficar com pouco espaço, então decidi usar links simbólicos para permitir que eu movesse alguns dos diretórios para outro disco de tamanho semelhante.
Infelizmente, parece que o rsync está excluindo os links simbólicos e recarregando o disco quase cheio. Após algumas pesquisas, descobri a --keep-dirlinks
opção de rsync, que parece feita sob medida para corrigir meu problema.
Só que não. Os links simbólicos no destino ainda estão sendo excluídos.
Aqui está o meu comando rsync:
rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
--delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
$RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/
Os EXCLUDES se expandem para eliminar um grande número de arquiteturas nas quais não estou interessado, ao longo das linhas de --exclude binary-alpha/ --exclude disks-alpha ...
. Antes do lançamento do rsync, meu diretório de pool fica assim:
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
Depois que o rsync entra em ação, recebo o seguinte:
receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/
E assim por diante, e os links simbólicos são substituídos por diretórios cheios de arquivos.
Algumas das outras opções do rsync estão interferindo --keep-dirlinks
? Quais não posso combinar? Ou é a ordem das opções que está causando o meu problema?