rsync não excluindo pastas no destino

3

Eu sei que há algumas missões com o mesmo tópico aqui, mas nenhuma resposta me ajudou.

Primeiro, este é o meu roteiro. Deve copiar todos os arquivos da origem para o destino (preservando todos os direitos, etc). Se um arquivo ou diretório for excluído na origem, ele também deverá ser excluído no destino. O que não está funcionando corretamente.

#!/bin/bash
## Basic RSync Command
RCMD="rsync -rulpEXogtzh --stats --delete --force"
DDIR="/tank/bak/s1/archive/"
SDIR="/tank/bak/s1/backup/"
CDAY='date '+%u''

echo "Archive Number: ${CDAY}"
echo "Archiving current backup"
$RCMD $SDIR $DDIR/$CDAY

Se eu tiver os seguintes diretórios na fonte:

/etc
/home
/root
/usr

e sincronizá-los Eu tenho os seguintes diretórios no alvo:

/etc
/home
/root
/usr

então isso funciona bem. Agora, quando eu excluir / usr da fonte, minha fonte se parece com isso:

/etc
/home
/root

mas quando eu executo o script novamente, meu alvo ainda é assim:

/etc
/home
/root
/usr

então, de alguma forma, o rsync ignora o --delete

rsync Mostra isso:

Number of files: 1983645
Number of files transferred: 0
Total file size: 17.69G bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 42.68M
File list generation time: 0.083 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 42.68M
Total bytes received: 4.70K

sent 42.68M bytes  received 4.70K bytes  155.52K bytes/sec
total size is 17.69G  speedup is 414.50

Alguém tem uma ideia do porquê?

Obrigado por qualquer resposta!

    
por Marc Vollmer 05.07.2014 / 16:57

1 resposta

2

O diretório não será excluído se as permissões o proibirem ou se o diretório não estiver vazio. Muitas vezes, existem arquivos que não podem ser excluídos porque são imutáveis ou protegidos. O que ls -a /usr mostra no destino?

Você pode tentar o sinal --force-delete , mas primeiro execute-o com -n (modo de execução a seco) para ver o que ele excluiria.

    
por 06.07.2014 / 15:10

Tags