Eu só sei sobre implementações C de rsync
, elas trabalham com as limitações dos sistemas de arquivos mais subjacentes. Isso significa apenas se o arquivo for exatamente do mesmo tamanho
os dados "no meio" podem ser atualizados.
No entanto, isso é irrelevante. Por motivos de segurança rsync
faz uma cópia da alteração
dados e move isso em cópia no lugar somente se estiver completo . rsync
normalmente não tenta e atualiza um arquivo existente, que corre o risco de corrupção se o processo for interrompido.
Você deve olhar para o --delay-updates
na página man para entender o processo de atualização. Essa opção permite que você atrase a renomeação até que todos os arquivos que precisam ser alterados em uma execução sejam concluídos e, em seguida, renomeie.