Espero que esto no cuenta como una pregunta sin una respuesta real, ya que parece que no puede encontrar una buena razón para usar cp(1)durante rsync(1)prácticamente en todas las circunstancias. ¿Debería uno preferir rsyncmás cp? ¿Hay alguna buena directriz para su uso?
rsync: Transfiere los diferenciales, puede usar compresión, puede usarse de forma remota (y segura), puede reiniciarse a pesar de una interrupción, incluso durante la transferencia de un solo archivo grande. 'cp: ¿Quizás es más simple de usar? ¿Es más rápido que rsync?

Respuestas:
cpes parte de coreutils, por lo tanto, está presente en todas partes. Además, se diseñó principalmente para copiar archivos dentro de una computadora.rsyncno es parte de coreutils, ni siquiera está presente en el entorno predeterminado. Además, fue diseñado principalmente para transferir archivos a través de la red. Tambiénrsynctiene más dependencias en comparación con coreutils, sin embargo, esta diferencia no tiene mucho sentido.PD: Por cierto, el uso de la CPU sigue siendo importante en los sistemas integrados.
fuente
La razón principal por la que no desea utilizar
rsyncpara cada operación de copia es porquersynctiene una sobrecarga de cálculo. Antes de que la transferencia de datos realmente comience,rsyncescanea todos los archivos. Luego, antes de cada archivo, se realiza una comparación. Esta sobrecarga no es insignificante, incluso con las CPU rápidas disponibles en 2012. Realizo este tipo de transferencias todo el tiempo, y en servidores de tamaño bastante decente, una vez que comienzas a tratar con grandes cantidades de datos, la sobrecarga puede llevar mucho tiempo.No digo que no use
rsync, en absoluto, use enrsynccualquier momento que pueda ahorrar algo de tiempo de transferencia. Simplemente no usersynccuándocppodría lograr lo mismo.Lo que generalmente hago, primero trae los datos usando métodos de copia regulares. Luego,
rsyncpara los cambios posteriores, que es cuando esas diferencias se pueden aprovechar.fuente
Esperaría
cpusar menos CPU cuando copie localmente porque no usa diffs, mientras quersyncpuede reducir las escrituras cuando usa diffs. La compresión debe evitarse localmente porque tiene que leer y escribir todo el archivo / diff de todos modos y requiere cálculos adicionales.fuente
rsyncse prefiere. Pero cuando no hay diferencia,rsyncsolo trae gastos generales sin beneficio adicional.rsynctener el doble de sobrecarga de E / S para dos archivos idénticos en comparación con el ocultocp: un tiempo de modificación modificado. Tendrías que dar--size-onlypara arreglar esto. La única otra forma en que puedo ver esto seríarsyncconfiar en las sumas de verificación del sistema de archivos, pero para la mayoría de los sistemas de archivos no son muy buenos predictores estadísticos de identidad.Aparte de los gastos generales en el caso de una diferencia grande o inexistente,
rsyncno parece tener un equivalente decp --reflink=always, lo que puede ahorrar una enorme cantidad de datos si se copia dentro de un sistema de archivos que lo admite (crea copias de copia en escritura, por lo que los datos en común entre el original y la copia (que es, por supuesto, inicialmente todo) se almacenan solo una vez).rsyncSin embargo, es mejor para actualizar las copias de CoW, utilizando--inplace.fuente