¿Por qué no usar siempre rsync?

17

Quería preguntar ¿hay alguna razón para no usar rsynctodo y abandonar cp?
No estaba al tanto rsyncy ahora no sé por qué cpes necesario.

Jim
fuente
9
rsyncno está disponible en todas partes, cpes.
Mat
3
Cual instalación? Linux? ¿Cúal? Unix? ídem. BSD? Nunca se sabe lo que viene por defecto.
terdon
55
Realmente no hay una "instalación predeterminada" para Linux. Cada distribución tiene su conjunto de paquetes principales y una gran cantidad de variaciones en ellos. Además, cuando necesita trabajar en muchos sistemas, usar las herramientas disponibles en todas partes simplifica las cosas.
Mat
44
@Mat: hay una instalación predeterminada (o núcleo) en la medida en que las distribuciones de Linux cumplan, a través de la base de usuarios de GNU, con POSIX, que requiere (y define el funcionamiento de) cppero no rsync: pubs.opengroup.org/onlinepubs/007904875 /utilities/contents.htm
goldilocks del
1
Estoy bastante seguro de que Debian GNU / Linux instala rsync por defecto. Sin embargo, no está disponible en el entorno de instalación y rescate. (He usado la madrugada de hoy para transferir el contenido de mi partición raíz de un disco a otro utilizado el AMD64 7.1.0 DVD de instalación..)
un CVn

Respuestas:

24

Estrictamente hablando, sí, siempre puedes usar rsync. De man rsync(énfasis mío):

Rsync es una herramienta de copia de archivos rápida y extraordinariamente versátil. Se puede copiar localmente, a / desde otro host a través de cualquier shell remoto, o a / desde un demonio rsync remoto. Ofrece una gran cantidad de opciones que controlan cada aspecto de su comportamiento y permiten una especificación muy flexible del conjunto de archivos a
copiar. Es famoso por su algoritmo de transferencia delta, que reduce la cantidad de datos enviados a través de la red al enviar solo las diferencias entre los archivos de origen y los archivos existentes en el destino. Rsync se usa ampliamente para copias de seguridad y duplicación y como un comando de copia mejorado para el uso diario.

Ahora, a veces no vale la pena escribir esos pocos caracteres adicionales solo para usar un tanque para matar una mosca. Además, a rsyncmenudo no se instala de manera predeterminada, por lo que cpes bueno tenerlo.

terdon
fuente
¿Quiere decir que no está disponible como parte de la instalación predeterminada, sino una descarga separada?
Jim
1
@ Jim sí, a veces necesitas instalarte rsyncdependiendo del sistema en el que te encuentres. Si no tienes rootacceso, eso puede ser difícil. cpes POSIX y siempre estará ahí.
terdon
9
cpes parte de los coreutils de GNU, por lo que siempre se instala en todos los sistemas Linux mientras rsyncno lo está.
Martin von Wittich
1
sometimes it is just not worth typing those few extra characters- Alias pcp(para "copia de progreso") para eso;)
Izkata
19

Rsync puede ser más lento que cpen algunas situaciones. Por ejemplo, cuando el destino existe y rsync termina haciendo algunas comparaciones costosas para cada bloque, no encuentra bloques iguales y de todos modos copia el archivo fuente completo.

Además, cuando los archivos de destino no existen, rsync no proporciona ninguna ventaja sobre cp.

maxschlepzig
fuente
1
Debajo, la metodología de copia de rsync es significativamente más lenta. Ver unix.stackexchange.com/questions/374071/… . Una serie de cp muestra (a partir de este escrito), una simple secuencia de operaciones de 32 KB de lectura / 32 KB de escritura. Mientras tanto, Rsync realiza una lectura / escritura de 4092 bytes + 4 bytes en el socket / lectura desde el socket / escritura de 250 KB en el archivo. Estoy haciendo una rsync de 36T de archivos de tamaño mixto a 130MB / s de rendimiento. Puedo triplicar eso con cp -a. rsync gana, como usted dice cuando quiere "hacer 'que' parezca 'esto'" en directorios que ya son similares.
Mike S
7

Creo rsyncque no maneja copiar archivos dispersos de una manera directa. cppor defecto lo maneja muy bien.

wcang
fuente
66
Lo hace con la -Sbandera.
terdon
2
@terdon, Oh, bueno, consulte este artículo: barricane.com/rsync-vm-sparse-inplace-kvm-vmware .
wcang
Ah, gracias, deberías agregar eso a tu respuesta. Simplemente busqué rápidamente la página del manual sparse.
terdon
4

Debido a que esta cpbandera carece de rsync:

-i, --interactive
       prompt before overwrite (overrides a previous -n option)
Dalker
fuente
No, aunque hay -n(ejecución en seco) en rsync, que puede ser una especie de sustituto de esa función.
Niloct