Un artículo sobre la configuración de los blogs de Ghost dice usar scppara 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 scppara 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 rsynccomando si scpcopiará en ambas direcciones? ¿Cómo scpdifiere de rsync?

Respuestas:
La principal diferencia entre estas herramientas es cómo copian los archivos.
scpbásicamente lee el archivo fuente y lo escribe en el destino. Realiza una copia lineal simple, localmente o sobre una red.rsynctambié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.rsyncverificará 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.
rsyncva 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.
rsynctiene 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.scptiene solo unos pocos interruptores.En resumen, utilícelo
scppara sus tareas diarias. Comandos que escribe de vez en cuando en su shell interactivo. Es más simple de usar, y en esos casos lasrsyncoptimizaciones no ayudarán mucho.Para tareas recurrentes, como
crontrabajos, 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
rsynccon la-Popción. Si se interrumpe la transferencia, puede reanudarla donde se detuvo volviendo a emitir el comando. Ver la respuesta de Sid Kshatriya .fuente
scpes 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.scpyrsync:rsync -aversusscp -rppara 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 rsyncfuente
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
-Popción es la misma que--partial --progresspermite que rsync funcione con archivos parcialmente descargados. La--rsh=sshopción le dice a rsync que use ssh como un shell remoto.4. Seguridad:
scp es más seguro. Tienes que usar
rsync --rsh=sshpara 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
rsyncoverscp(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
--checksumdescripción de la opción:fuente
Hay una distinción para mí que
scpsiempre está encriptada con ssh (shell seguro), mientrasrsyncque no está necesariamente encriptada. Más específicamente,rsyncno 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
rsyncpuede ser significativamente más rápido quescp).Mira esta publicación para saber cuándo
rsynctiene el cifrado activado.fuente
scp es mejor para un archivo.
O una combinación de
tarcompresió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
tarhaciasshy 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 -aPpara reemplazar un host cassandra malo en nuestro clúster. No podemos hacer esto con scp (preservación lenta y sin progreso).fuente