Obtendo o rsync para excluir arquivos de origem que já existem no destino

3

Eu tenho uma tarefa cron que usa rsync para transferir periodicamente todos os arquivos que aparecem em um diretório específico no servidor A para algum lugar no servidor B. Eu uso --partial e --append-verify como os arquivos são grandes. Eu também uso a opção remove-source-files para excluir os arquivos no servidor A quando eles são transferidos. Conforme a página do manual, rsync exclui apenas os arquivos de origem depois que todas as transferências de arquivos forem concluídas em uma execução específica.

Isso funciona bem na maioria das vezes, exceto se a transferência for interrompida no meio devido a uma falha de rede, após alguns arquivos já terem sido transferidos. Na próxima execução, o programa vê alguns dos arquivos já no destino e determina corretamente que eles não precisam ser transferidos novamente. No entanto, como eles não faziam parte dessa transferência, os arquivos no servidor de origem não são excluídos. Com o tempo eles se acumulam.

Existe uma maneira de dizer ao rsync para deletar os arquivos de origem na execução subseqüente, se eles existirem no destino, ou isso é algo que terei que resolver escrevendo meus próprios scripts?

    
por Falconne 12.06.2017 / 13:15

1 resposta

1
Honestamente, não é realmente uma grande resposta, porque é uma maneira de obter os resultados que você está solicitando. Então aqui vai:

Se você remover o comando --append-verify e substituí-lo pelo comando --update , deixe todas as outras opções e execute o RSYNC sem ele.

Isso excluirá todos os arquivos de origem ao copiar os arquivos que foram modificados.

    
por 12.06.2017 / 20:39

Tags