Con mucho, la forma más fácil es simplemente copiarlo a través de scp. Además, esta sintaxis en realidad funciona a diferencia de algunas de las otras sugerencias.
No se puede superar esta sintaxis por facilidad. Le permite copiar recursivamente, rsync o lo que quiera sin la molestia de considerar tuberías potencialmente complejas. Esta sintaxis es intuitivamente clara, será más fácilmente compatible con los administradores del sistema que lo siguen y no hace un uso inútil del gato .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
Desde la página de manual de scp : las -3
copias entre dos hosts remotos se transfieren a través del host local. Sin esta opción, los datos se copian directamente entre los dos hosts remotos. Tenga en cuenta que esta opción deshabilita el medidor de progreso.
En el siguiente ejemplo
- Su estación de trabajo se llama MacBook-Pro.
- Dev Jump Box se llama devjumpserver
- Dev Application Server se llama devapplicationserver
- Está en la zona DNS de LAN llamada .local
- QA Jump Box se llama qajumpserver
- QA Application Server se llama qaapplicationserver
- Está en la zona LAN DNZ llamada .local
- Realizaremos una copia de prueba de un archivo de 670GB / etc / hosts ;-)
- Se supone que tiene configurada la autenticación de clave pública SSH.
Aquí hay un archivo ~ / .ssh / config que configura el acceso directo desde su estación de trabajo a los servidores de aplicaciones a través del salto apropiado (también conocido como servidor de bastión).
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Anfitrión *
ServerAliveInterval 60
Servidor de desvalorización
HostName devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% h:% p
Usuario barrychapman
Host qaapplicationserver
HostName qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% h:% p
Usuario barrychapman
MacBook-Pro: ~ barrychapman $
Al probar la presencia del archivo en el servidor de destino, no estará allí.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls: no se puede acceder / tmp / hosts: no existe tal archivo o directorio
Asesinado por la señal 1.
MacBook-Pro: ~ barrychapman $
Ahora copiemos un archivo del servidor de aplicaciones Dev a la aplicación QA a través de su estación de trabajo.
MacBook-Pro: ~ barrychapman $ scp -3 devapplicationserver: / etc / hosts qaapplicationserver: / tmp /
Asesinado por la señal 1.
Asesinado por la señal 1.
MacBook-Pro: ~ barrychapman $
Ahora verifiquemos la presencia del archivo copiado en el QA Application Server. Estará allí esta vez.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp / hosts
Asesinado por la señal 1.
MacBook-Pro: ~ barrychapman $
Nota
Al cerrar una conexión de ProxyCommand, verá el mensaje de advertencia "Eliminado por la señal 1". Esto es SSH derribando la conexión ProxyCommand y no es motivo de alarma. Puede deshacerse de él agregando LogLevel Quiet
a su stanza de configuración de host de bastión.