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.
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?
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.
Tags rsync