rsync --remove-source-files exclui os arquivos de origem um por um ou após a conclusão do rsync?

23

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 estou interessado apenas em ter os arquivos na máquina de destino após o término 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 e, em seguida, excluirá da origem e iniciará a cópia de b , ou aguardará que os a e b sejam copiados para a máquina de destino antes de excluir ambos? Eu 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.

    
por brafales 28.03.2012 / 15:52

2 respostas

16

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, de modo que a mensagem de que um arquivo foi recebido com sucesso (e, portanto, pode ser excluído) pode ser armazenada em buffer por trás de outros dados.

    
por 28.03.2012 / 17:14
4

Eu tentei (e você pode 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.

EDITAR: de acordo com a resposta de Kyle Jones, o caso pode ser diferente quando muitos arquivos estão envolvidos.

    
por 28.03.2012 / 17:23