Sempre me perguntei por que rsync
tenta transferir um arquivo para um local remoto, onde ele tem permissões de leitura / execução para o diretório de destino, mas nenhuma permissão de gravação para criar o arquivo de destino real. Isso pode ser simulado mesmo localmente ao tentar copiar um arquivo como usuário comum para / , rsync
transferirá o arquivo inteiro (também demorando muito para arquivos grandes) e finalmente falha com
rsync: mkstemp "/.myTargetFile" failed: Permission denied (13)
Portanto, ele já parece falhar na inicialização ao tentar criar o arquivo temporário (o arquivo de pontos ) durante a transferência. Por que ele não percebe isso e aborta cedo, em vez de tentar copiar o arquivo inteiro sem ter permissões de gravação?
E para onde ele copia o arquivo, se não puder criar o arquivo temporário? Não consigo ver nenhum aumento de memória dos processos rsync e também nenhum arquivo correspondente em / tmp . Parece que ele descarta diretamente os dados no destino, mas continua com a transferência.
--inplace
ele transfere o arquivo inteiro até perceber a falta de permissões de gravação.