¿Hay alguna razón para usar scp en lugar de rsync?
62
¿Hay alguna razón para usar en scplugar de rsync? No veo ninguna razón para scpvolver a usar , rsynchace todo lo que scphace, con más seguridad (puede preservar enlaces simbólicos, etc.).
@Shadur scp es dañino porque sobrescribe los archivos de destino existentes de forma predeterminada. Así es rsync, pero al menos permite limitar el posible daño con -u.
Gilles 'SO- deja de ser malvado'
3
@Gilles Al igual que con cualquier herramienta, debe comprender qué hace y cómo lo hace para usarla de manera segura.
Alex Chamberlain
8
En ese contexto, regular cpy rmse consideraría "dañino", y si define "dañino" como "puede fastidiarme si hago algo estúpido", rsyncno es menos dañino.
Shadur
1
En sistemas sin rsyncinstalar, el uso rsync(obviamente) ni siquiera es posible.
Kusalananda
Respuestas:
46
scp proporciona un método similar a cp para copiar archivos de una máquina a una máquina remota a través de una conexión SSH segura.
rsync le permite sincronizar carpetas remotas.
Son programas diferentes y ambos tienen sus usos. scp siempre es seguro, mientras que rsync debe viajar a través de SSH para ser seguro.
Además, es bastante seguro que rsync debe instalarse en el otro extremo.
ckhan
3
@ckhan, no, puede copiar sin tener nada instalado en el otro lado, será menos eficiente.
mikebloch
2
Me gusta la simplicidad de scp.
Alex Chamberlain
2
@mikebloch ¿Cómo haces eso? ¿Es una nueva característica? Acabo de probar esto usando la versión 3.0.9. y se quejó de que no podía encontrar rsyncen el control remoto.
Alexios
1
@mikebloch, debe instalarse en el servidor para realizar los cálculos de suma de comprobación, lo que puede agregar una gran cantidad de carga de CPU al servidor. Es por eso que la mayoría de los sitios grandes no lo admiten, y por qué zsyncse creó como una alternativa.
psusi
19
Una de las cosas principales (que creo que nadie mencionó) es que si está transfiriendo grandes cantidades de datos o archivos, y si la transferencia se desconecta antes de completarse por cualquier motivo, rsync lo retomará donde lo dejó. Mientras que scp no lo hace.
Yo uso scp si quiero transferir uno o un par de archivos o directorios. Voy a rsync para obtener datos de varios GB.
Puede valer la pena agregar que la --partialbandera es útil al transferir archivos grandes. rsynccontinuará donde se quedó dentro del archivo en lugar de comenzar ese archivo nuevamente.
Flup
Como @Flup mencionó, rsync no dejará ningún archivo en tránsito para que pueda reanudarlo a menos que use la opción --partial. Estos archivos están ocultos por defecto en el directorio de destino. Puede usar --partial-dir para colocar todos estos archivos en un solo directorio.
Lester Cheung
Bueno, rsync -vP username@host:/path/to/file .haré esto también. Ver esta respuesta en Stackoverflow
rsync puede transferir archivos entre dos hosts remotos. De hecho, rsync a host:bes equivalente a scp a host:b.
brandizzi
Eso es lo que escribí, rsync puede transferir deltas entre hosts locales y remotos, pero scp no se limita a eso, sino que puede transferir deltas entre dos hosts remotos. @brandizzi
rsynccompara los archivos en cada extremo y transfiere solo las partes modificadas de los archivos modificados. Cuando transfiere archivos la primera vez, se comporta de manera bastante similar scp, pero para una segunda transferencia, donde la mayoría de los archivos no cambian, generará muchos menos datos scp. También es una forma conveniente de reiniciar las transferencias fallidas: simplemente vuelve a emitir el mismo comando y continuará donde lo dejó el tiempo anterior, mientras scpque comenzará nuevamente desde cero.
scpes más simple de usar ya que requiere menos argumentos. Cojo myselv usando scp en lugar de rsyncsi solo transfiero un solo archivo. Probablemente soy demasiado vago para definir un alias para rsync ... ;-)
Hmmm, ¿por qué es así? rsync a host:bes equivalente al scp a host:bmismo número de argumentos.
mikebloch
1
@mikebloch Dos letras más para escribir ... ;-) En el pasado tuve que proporcionar "-e ssh -a" para obtener el resultado correcto. Ahora que "-e ssh" está predeterminado, este podría ser un juego diferente.
-u
.cp
yrm
se consideraría "dañino", y si define "dañino" como "puede fastidiarme si hago algo estúpido",rsync
no es menos dañino.rsync
instalar, el usorsync
(obviamente) ni siquiera es posible.Respuestas:
scp proporciona un método similar a cp para copiar archivos de una máquina a una máquina remota a través de una conexión SSH segura.
rsync le permite sincronizar carpetas remotas.
Son programas diferentes y ambos tienen sus usos. scp siempre es seguro, mientras que rsync debe viajar a través de SSH para ser seguro.
fuente
rsync
en el control remoto.zsync
se creó como una alternativa.Una de las cosas principales (que creo que nadie mencionó) es que si está transfiriendo grandes cantidades de datos o archivos, y si la transferencia se desconecta antes de completarse por cualquier motivo, rsync lo retomará donde lo dejó. Mientras que scp no lo hace.
Yo uso scp si quiero transferir uno o un par de archivos o directorios. Voy a rsync para obtener datos de varios GB.
fuente
--partial
bandera es útil al transferir archivos grandes.rsync
continuará donde se quedó dentro del archivo en lugar de comenzar ese archivo nuevamente.rsync -vP username@host:/path/to/file .
haré esto también. Ver esta respuesta en Stackoverflowrsync : transfiere deltas (usando su algoritmo de transferencia Delta ) entre:
scp : transfiere archivos completos entre:
Resumen:
scp
puede transferir archivos entre dos hosts remotos mientrasrsync
no lo admite.fuente
rsync a host:b
es equivalente ascp a host:b
.El usuario Chris en Webhosting Talk escribe:
fuente
scp
es más simple de usar ya que requiere menos argumentos. Cojo myselv usando scp en lugar dersync
si solo transfiero un solo archivo. Probablemente soy demasiado vago para definir un alias para rsync ... ;-)fuente
rsync a host:b
es equivalente alscp a host:b
mismo número de argumentos.Créditos a @tomrunia en https://gist.github.com/KartikTalwar/4393116
Preste atención
--delete
, no lo use si desea mantener archivos extraños en directorios de destinofuente