Eu tenho um comando rsync em um aplicativo que copia o conteúdo de uma pasta para outra máquina. Eu tenho a opção --remove-source-files
porque só estou interessado em ter os arquivos na máquina de destino após a conclusão do rsync.
No entanto, eu queria saber como o rsync se comporta se ele falha ou é interrompido durante a transferência de arquivos?
Considere que eu tenho dois arquivos para sincronizar a
e b
. O rsync copiará a
, excluirá da fonte e começará a copiar b
ou aguardará os dois a
e b
será copiado para a máquina de destino antes de excluir os dois? Vi que você pode configurar esse comportamento ao excluir arquivos estranhos com alguns sinalizadores, mas não encontrou nenhum sobre a remoção de arquivos de origem.
file-transfer
rsync
Brafales
fonte
fonte
Respostas:
A verificação do código rsync revela que os arquivos de origem são removidos à medida que são enviados, embora isso possa não acontecer imediatamente. O rsync multiplexa suas operações, para que a mensagem de que um arquivo foi recebido com sucesso (e, portanto, possa ser excluído) possa ser armazenada em buffer atrás de outros dados.
fonte
Eu tentei (e você poderia facilmente fazer isso também, com certeza). Eles são removidos depois que todos os arquivos são transferidos com sucesso. Se a transferência for interrompida ou ocorrer outro erro, os arquivos de origem não serão removidos, mesmo que alguns deles tenham sido transferidos OK.
EDIT: de acordo com a resposta de Kyle Jones, o caso pode ser diferente quando há muitos arquivos envolvidos.
fonte