Un artículo sobre la configuración de los blogs de Ghost dice usar scp
para copiar desde mi máquina local a un servidor remoto:
scp -r ghost-0.3 root@*your-server-ip*:~/
Sin embargo, Railscast 339: Chef Solo Basics utiliza scp
para copiar en la dirección opuesta (desde el servidor remoto a la máquina local):
scp -r [email protected]:/var/chef .
En el mismo Railscast, cuando el autor quiere copiar archivos al servidor remoto (en la misma dirección que el primer ejemplo), usa rsync
:
rsync -r . [email protected]:/var/chef
¿Por qué usar el rsync
comando si scp
copiará en ambas direcciones? ¿Cómo scp
difiere de rsync
?
Respuestas:
La principal diferencia entre estas herramientas es cómo copian los archivos.
scp
básicamente lee el archivo fuente y lo escribe en el destino. Realiza una copia lineal simple, localmente o sobre una red.rsync
también copia archivos localmente o en una red. Pero emplea un algoritmo especial de transferencia delta y algunas optimizaciones para que la operación sea mucho más rápida. Considera la llamada.rsync
verificará los tamaños de los archivos y las marcas de tiempo de modificación de A y B , y omitirá cualquier procesamiento adicional si coinciden.Si el archivo de destino B ya existe, el algoritmo de transferencia delta se asegurará de que solo las diferencias entre A y B se envíen por cable.
rsync
va a escribir los datos en un archivo temporal T , y luego vuelva a colocar el archivo de destino B con T para hacer la mirada de actualización "atómica" a los procesos que puedan estar utilizando B .Otra diferencia entre ellos se refiere a la invocación.
rsync
tiene una gran cantidad de opciones de línea de comandos, lo que permite al usuario ajustar su comportamiento. Admite reglas de filtro complejas, se ejecuta en modo por lotes, modo demonio, etc.scp
tiene solo unos pocos interruptores.En resumen, utilícelo
scp
para sus tareas diarias. Comandos que escribe de vez en cuando en su shell interactivo. Es más simple de usar, y en esos casos lasrsync
optimizaciones no ayudarán mucho.Para tareas recurrentes, como
cron
trabajos, usersync
. Como se mencionó, en las invocaciones múltiples aprovechará los datos que ya se transfirieron, con un rendimiento muy rápido y ahorrando recursos. Es una excelente herramienta para mantener dos directorios sincronizados en una red.Además, cuando se trata de archivos grandes, use
rsync
con la-P
opción. Si se interrumpe la transferencia, puede reanudarla donde se detuvo volviendo a emitir el comando. Ver la respuesta de Sid Kshatriya .fuente
scp
es más probable que esté disponible en un sistema similar a Unix, por lo que evita un molesto "comando no encontrado" de vez en cuando.scp
yrsync
:rsync -a
versusscp -rp
para preservar los tiempos de modificación y los permisos.rysnc puede ser útil para ejecutarse en conexiones lentas y poco confiables. Entonces, si su descarga se interrumpe en medio de un archivo grande, rysnc podrá continuar desde donde lo dejó cuando se invoca nuevamente.
Utilizar
rsync -vP username@host:/path/to/file .
La opción -P conserva los archivos descargados parcialmente y también muestra el progreso.
Como de costumbre comprobar
man rsync
fuente
Diferencia b / w scp y rsync en diferentes parámetros
1. Rendimiento sobre latencia
scp
: scp es relativamente menos optimiza y acelerarsync
: rsync es comparativamente más optimizado y rápidohttps://www.disk91.com/2014/technology/networks/compare-performance-of-different-file-transfer-protocol-over-latency/
2. Manejo de interrupciones
scp
: la herramienta de línea de comando scp no puede reanudar descargas canceladas de conexiones de red perdidasrsync
: Si la sesión rsync anterior se interrumpe, puede reanudarla tantas veces como desee escribiendo el mismo comando. rsync reiniciará automáticamente la transferencia donde la dejó.http://ask.xmodulo.com/resume-large-scp-file-transfer-linux.html
3. Ejemplo de comando
scp
rsync
La
-P
opción es la misma que--partial --progress
permite que rsync funcione con archivos parcialmente descargados. La--rsh=ssh
opción le dice a rsync que use ssh como un shell remoto.4. Seguridad:
scp es más seguro. Tienes que usar
rsync --rsh=ssh
para hacerlo tan seguro como scp.documento man para saber más:
fuente
The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.
Una característica importante de
rsync
overscp
(además del algoritmo delta y el cifrado si se usa con ssh) es que verifica automáticamente si el archivo transferido se ha transferido correctamente. Scp no hará eso, lo que ocasionalmente podría resultar en corrupción al transferir archivos más grandes. Entonces, en general, rsync es una copia con garantía .Las páginas de manual de Centos mencionan esto al final de la
--checksum
descripción de la opción:fuente
Hay una distinción para mí que
scp
siempre está encriptada con ssh (shell seguro), mientrasrsync
que no está necesariamente encriptada. Más específicamente,rsync
no realiza ningún cifrado por sí mismo; todavía es capaz de usar otros mecanismos (ssh, por ejemplo) para realizar el cifrado.Además de la seguridad, el cifrado también tiene un gran impacto en su velocidad de transferencia, así como en la sobrecarga de la CPU. (Mi experiencia es que
rsync
puede ser significativamente más rápido quescp
).Mira esta publicación para saber cuándo
rsync
tiene el cifrado activado.fuente
scp es mejor para un archivo.
O una combinación de
tar
compresión para conjuntos de datos más pequeños, como árboles de código fuente con recursos pequeños ( es decir , imágenes, sqlite, etc. ).Sin embargo , cuando comience a lidiar con volúmenes más grandes, diga:
No es práctico construir un archivo zip / tar.gz para transferir con scp en este punto a los límites físicos del servidor alojado.
A modo de ejercicio, puede hacer algunas gimnasia tales como tuberías
tar
haciassh
y redirigir los resultados en una remota de archivos. (ahorrando la necesidad de construir un intercambio o clon temporal también conocido como zip o tar.gz)Sin embargo ,
rsync simplifica este proceso y le permite transferir datos sin consumir espacio en disco adicional.
también ,
Las actualizaciones continuas (¿cron?) Usan cambios mínimos en comparación con las copias clonadas completas aceleran las migraciones de datos grandes con el tiempo.
tl; dr
scp
== pequeña escala (con espacio para construir archivos comprimidos en la misma unidad)rsync
== gran escala (con la necesidad de hacer una copia de seguridad de datos grandes y no queda espacio)fuente
Es mejor pensar en un contexto práctico. En nuestro equipo, usamos
rsync -aP
para reemplazar un host cassandra malo en nuestro clúster. No podemos hacer esto con scp (preservación lenta y sin progreso).fuente