Copiar archivos usando rsync del servidor remoto a la máquina local
319
Una vez que haya ingresado a mi servidor remoto, ¿cuál sería el comando para copiar todos los archivos de un directorio a un directorio local en mi máquina?
Porque puede rsyncdirectamente desde su máquina local.
Johnsyweb 01 de
2
Oh si puedo. Ahora veo las otras respuestas. Gracias.
markstewie 01 de
17
Esta es una tarea común para el desarrollo (web) con una buena respuesta. No veo por qué todavía está cerrado.
d.raev
66
Creo que @ d.raev se refería al hecho de que la pregunta estaba cerrada como fuera de tema (si recuerdo correctamente, marqué para que esta pregunta se migrara a SuperUser, donde creo que encaja mejor) en lugar de que no hubo una respuesta aceptada . Aún así ... fue agradable tener mi respuesta aceptada después de todo este tiempo. :-)
Johnsyweb
3
@markstewie no tiene malos sentimientos, es una buena pregunta y me ayudó (parece que muchos otros también) pero este "cerrado" hace que parezca que no es digno de confianza, por lo que me pregunté a prestarle atención.
@cmcdragonkai: de hecho, el host local debe estar ejecutando un servidor ssh y ser accesible para el host remoto. Esta es una de las razones por las que prefiero la primera solución sobre la segunda.
Johnsyweb
16
Tenga cuidado al sincronizar con barras diagonales. El comando dado por Johnnysweb crearía un directorio llamado copy inside /path/to/local/storage. Me gusta así /path/to/local/storage/copy. Si eso es lo que quieres genial. Sin embargo, un escenario más común es que desea copiar el contenido del directorio remoto en un directorio en su local. Luego haría lo /path/to/copy/que colocaría el contenido dentro del directorio /path/to/local/storagesin crear un directorio de copia local.
cap
16
Vine aquí para un comando rsync y salí con explicahell.com . Gracias @beefsack!
Cyphase
49
Si tiene acceso SSH, no necesita SSH primero y luego copiar, solo use Copia segura (SCP) desde el destino.
scp user@host:/path/file /localpath/file
Se admiten caracteres comodín, por lo que
scp user@host:/path/folder/* /localpath/folder
copiará todos los archivos remotos en esa carpeta. Si copia más de un directorio.
note -r copiará todas las subcarpetas y el contenido también.
¿Por qué usar en scplugar de rsync? Además, observe que su shell no intente expandirse user@host:/path/folder/*, quizás utilizando comillas simples ( ').
Johnsyweb 01 de
Creo que scp es más fácil de usar desde el destino ... Esencialmente es una copia de archivo sobre ssh, pero sin tener que establecer primero la conexión ssh.
Tezyn
8
Sé lo que scpes, esa no era mi pregunta. ¿Por qué no lo usaste rsync? Esto es lo que pide la pregunta, no requiere una sesión SSH establecida y, a menudo, es más rápido y más eficiente que scp.
Johnsyweb
26
Recuerde, scp sigue enlaces simbólicos en lugar de copiarlos. Esto puede llevar a copiar más de lo esperado y a la pérdida de enlaces simbólicos (se convierten en carpetas / archivos normales).
Mondane
2
La respuesta de Mondane es precisamente la razón por la que encontré esta publicación. Normalmente, uso scp para todo, pero necesitaba preservar los permisos y el enlace simbólico de servidor a servidor. Además, la diferencia de velocidad (bc mi auto novato definitivamente scped primero) fue enorme.
rsync
directamente desde su máquina local.Respuestas:
Desde su máquina local:
Desde su máquina local con un puerto ssh no estándar:
O desde el host remoto, suponiendo que realmente desea trabajar de esta manera y su máquina local está escuchando en SSH:
Consulte
man rsync
para obtener una explicación de mis interruptores habituales.fuente
/path/to/local/storage
. Me gusta así/path/to/local/storage/copy
. Si eso es lo que quieres genial. Sin embargo, un escenario más común es que desea copiar el contenido del directorio remoto en un directorio en su local. Luego haría lo/path/to/copy/
que colocaría el contenido dentro del directorio/path/to/local/storage
sin crear un directorio de copia local.Si tiene acceso SSH, no necesita SSH primero y luego copiar, solo use Copia segura (SCP) desde el destino.
Se admiten caracteres comodín, por lo que
copiará todos los archivos remotos en esa carpeta. Si copia más de un directorio.
note -r copiará todas las subcarpetas y el contenido también.
fuente
scp
lugar dersync
? Además, observe que su shell no intente expandirseuser@host:/path/folder/*
, quizás utilizando comillas simples ('
).scp
es, esa no era mi pregunta. ¿Por qué no lo usastersync
? Esto es lo que pide la pregunta, no requiere una sesión SSH establecida y, a menudo, es más rápido y más eficiente quescp
.