rsync / rsnapshot e exlude / include diretório, caminho absoluto

0

Estou usando o rsnapshot e desejo excluir um diretório pelo caminho absoluto.

Eu adicionei ao rsnapshot.conf exclude /home/user/data O rsnapshot irá usar este comando rsync:

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=/home/user/data /home \
    /backupdir/hourly.0/localhost/

e funciona, exclui o /home/user/data dir, mas não está claro para mim porque funciona. Lendo as páginas man do rsync (e, por exemplo, esta resposta link ), os padrões exclude / include que começam com / são estão ancorados na raiz de transferência, então eu estava pensando que vai falhar porque tentar excluir

/home/home/user/data

Alguém pode me esclarecer este ponto?
Qual é o caminho certo para excluir um diretório usando o caminho absoluto?

Obrigado pela ajuda

    
por res1 15.06.2017 / 13:52

1 resposta

0

Eu sei que isso é antigo, mas apenas para o registro ...

O --exclude especifica um padrão , não um local na árvore de diretórios "/ home". rsync não adicionará nada a esse padrão. então "/ home" não é adicionado / duplicado porque você especificou --relative.

se você adicionar -iv ao seu comando rsync, o rsync listará todos os Dirs e arquivos em "/ home" que serão processados. Você notará que qualquer item de diretório com "/ home / user / data" será ocultado por causa do padrão de exclusão "/ home / user / data /"

se você usou --exclude = data, todos os itens do diretório com "data" em seu nome serão omitidos. Assim, por exemplo, / home / user / data, ou / home / user2 / data, ou / home / user3 / data, serão omitidos também. já que todos têm o padrão "dados" neles.

    
por 16.05.2018 / 23:15