Usando a opção --delete com rsync

0

Estamos usando o seguinte comando rsync em um script para copiar arquivos da origem para o destino.

rsync -av --exclude 'share/web/sessions/' --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/output

Agora, temos um script de limpeza no host de origem que está removendo alguns dos arquivos após alguns dias específicos baseados em nossos requisitos. Queremos que os arquivos, uma vez removidos do host de origem, rsync também os removam do host de destino.

Para isso, rsync fornece as opções --delete-before e --delete-after para remover os arquivos do host de destino depois que eles foram removidos do host de origem. Mas eu sou pouco cético em usar essas opções, pois a página man diz This option can be dangerous if used incorrectly! It is a very good idea to first try a run using the --dry-run option (-n) to see what files are going to be deleted.

Meu comando atualizado é o seguinte

rsync -av --exclude 'share/web/sessions/' --delete-after --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/outpu

Estas opções estão corretas? Estes são os hosts de produção para nós e quero ter certeza antes de usar essas opções. Também qualquer conselho especializado.

    
por Zama Ques 22.03.2016 / 10:28

1 resposta

1

Eu não usaria --delete-after porque força o rsync a verificar novamente a lista de arquivos. A melhor opção hoje é usar --delete-during (ou --del para abreviar). Se você quiser manter o efeito "excluir após" devido a problemas de erro de E / S, use --delete-delay .

Veja a página man para referência:

Some options require rsync to know the full file list, so these options disable the incremental recursion mode. These include: --delete-before, --delete-after, --prune-empty-dirs, and --delay-updates. Because of this, the default delete mode when you specify --delete is now --delete-during when both ends of the connection are at least 3.0.0 (use --del or --delete-during to request this improved deletion mode explicitly). See also the --delete-delay option that is a better choice than using --delete-after.

E, claro, as partes relevantes para cada método.

    
por 22.03.2016 / 10:51