uma pergunta sobre meu script rsync

0

Então eu recentemente escrevi um script para o rsync, para sincronizar um disco rígido USB para uma pasta no meu servidor. Um dia ou dois depois de executar o script, percebo que alguns arquivos estão faltando na pasta de origem.

Alguém poderia ser querido e verificar meu script para ver se ele teria excluído os arquivos da fonte? (pasta do servidor) ou se é apenas excluir arquivos do destino (hdd usb) que não estão mais na fonte (como eu queria que ele fizesse).

 #!/bin/bash
# rsync folders

SOURCEDIR=/raid/orm_data/outputBatch2/rsta
DESTDIR=/media/exthdd/batch2

cd $SOURCEDIR
sudo rsync -h -v -r -P -t --delete-after --exclude="*/*/*/THUM" --exclude="*result*" --exclude=".DS_Store" --exclude="._.DS_Store" --include="*.pdf" --include="*.PDF" --include="*.jpg" --include="*.JPG" --include="*.tif" --include="*.TIF" --include="*.xhtml" --include="*.XHTML" --include="*.xml" --include="*.XML" $SOURCEDIR $DESTDIR

Espero que não tenha sido o roteiro (quero dizer, funcionou nos testes). Qualquer ajuda seria incrível =] Agrada e obrigado!

    
por Pete Duggan 29.07.2016 / 16:25

1 resposta

0

A única opção rsync que você usou e que potencialmente pode remover o arquivo é --delete-after , mas exclui arquivos do destino, não da origem. Isso vale para todas as opções --delete de rsync . A única opção para remover arquivos da fonte é --remove-source-files .

Portanto, o comando rsync não deve remover nenhum arquivo da fonte.

Em uma nota diferente, a opção -h é para ajuda, o que não faz nada no seu caso, você também deve olhar para a opção -a ( --archive ) já que você já está usando a maioria das opções inclui.

Além disso, como você tem muitos --include padrões, você deve definir os padrões em um arquivo e usar a opção --include-from para tornar a linha de comando mais legível e de fácil manutenção.

    
por heemayl 29.07.2016 / 18:54