Siempre me pregunté por qué rsyncintenta transferir un archivo a una ubicación remota donde tiene permisos de lectura / ejecución para el directorio de destino, pero no tiene permisos de escritura para crear el archivo de destino real. Esto se puede simular incluso localmente cuando se intenta copiar un archivo como un usuario normal a / , rsynctransferirá todo el archivo (también tarda bastante en archivos grandes) y finalmente falla con
rsync: mkstemp "/.myTargetFile" failed: Permission denied (13)
Por lo tanto, ya parece fallar en el inicio al intentar crear el archivo temporal (el archivo de puntos ) durante la transferencia. ¿Por qué no se da cuenta de esto y aborta temprano en lugar de intentar copiar todo el archivo sin tener permisos de escritura?
¿Y a dónde copia el archivo si no puede crear el archivo temporal? No puedo ver ningún aumento de memoria de los procesos rsync y tampoco ningún archivo correspondiente en / tmp . Parece que descarta directamente los datos en el destino, pero aún continúa con la transferencia.
--inplaceél, transfiere todo el archivo hasta notar la falta de permisos de escritura.