¿Hay una manera fácil de transferir archivos entre dos servidores SSH / SFTP? La solución perfecta sería FileZilla, pero solo le permite crear una conexión entre local y remoto, pero no entre remoto y remoto.
En teoría de que pudiera abrir dos ventanas de Nautilus y conectarse a algunos ssh://server1/path/to/folder
y ssh://server2/path/to/folder
y luego simplemente tirar de los archivos de uno a otro lado. Mi experiencia es que esto es muy inestable. La transmisión de archivos en una suma de tamaño de, por ejemplo, 10 MB no es un problema, pero la transferencia de, por ejemplo, 10 GB a menudo provocó que Nautilus se colgara y permaneciera allí necesitando ps -e | grep nautilus
-> kill -9 <pid>
. También probé lo mismo con Nemo y Caja. Si bien Nemo tiende a ser más estable que los otros dos, todavía no es perfecto y también se rompe de vez en cuando. FileZilla es extremadamente estable, nunca se rompió realmente, pero no es muy flexible debido al hecho mencionado de que solo puede conectarse a un único servidor SSH.
Por supuesto, también podría montar una carpeta con sshfs
, pero esta es una solución inconveniente. Demasiado trabajo previo para realizar una transferencia simple.
¿Hay alguna aplicación que pueda manejar transferencias entre dos servidores SSH sin romperse? Perfecto sería algo como FileZilla, que retoma el trabajo nuevamente si se interrumpe la conexión.
Respuestas:
Si está en una versión de Ubuntu que todavía es compatible, entonces su
scp
comando proporcionará el-3
interruptor que permite copiar archivos de remote1 a remote2 a través de localhost :También puede omitir el
-3
cambio, pero luego necesitará la clave pública (id_rsa.pub
) deuser1@remote1
en el archivoauthorized_keys
deuser2@remote2
:scp
luego debajo del capó se hace unssh user1@remote1
primero y a partir de ahíscp /path/to/file1 user2@remote2:/path/to/file2
. Es por eso que la credencial debe distribuirse de manera diferente a la-3
solución.En otras palabras:
scp -3 remote1:file1 remote2:file2
transfiere el archivo de remote1 a localhost y luego de nuevo a remote2 . Los datos viajan remote1 → localhost → remote2 . El localhost es la tercera parte en este escenario, por lo tanto-3
. Para que esto funcione, necesitará las credenciales de localhost en remote1 y remote2 porque localhost se conecta a ambos.scp remote1:file1 remote2:file2
copia el archivo directamente de remote1 a remote2 a la velocidad con la que están conectados entre sí. localhost no está involucrado aquí (además de emitir el comando). Los datos viajan remoto1 → remoto2 . Para que esto funcione, necesitará las credenciales de localhost solo en remote1 pero además necesita las credenciales de remote1 en remote2 porque localhost se conecta a remote1 solamente y luego remote1 se conecta a remote2 .Si es posible, elegiría el segundo enfoque. Como algunos comentarios ya dicen: por lo
general,el cable de red entre remote1 y remote2 es mucho más grueso que el cable entre ellos y localhost .fuente
-3
.En la mayoría de los casos, dos servidores ssh pueden comunicarse entre sí (o al menos uno puede comunicarse con el otro), y nuevamente en la mayoría de los casos, la Internet de la estación de trabajo es mucho peor que cualquiera de los servidores.
Si es así, ordenar el traslado de un servidor al otro es el camino a seguir.
Verifique
nohup.out
en el servidor1 si hay errores.Si la accesibilidad del servidor es al revés, puede revertir qué máquina es la maestra:
fuente
Tal vez podría usar uno de varios front-end GUI para rsync:
¿Hay alguna aplicación GUI para el comando rsync?
O tal vez podría usar rsync directamente desde la línea de comandos para conectarse a ambos servidores remotos:
"Cómo sincronizar archivos entre dos controles remotos"
A menudo inicio sesión en un servidor con ssh, luego, desde la línea de comandos de ese servidor, uso rsync para empujar o extraer archivos al otro servidor remoto , que generalmente es mucho más rápido que tratar de transferir los archivos a través de una tercera computadora.
El rsync es lo suficientemente inteligente como para hacer algo de trabajo, luego, si algo sale mal e interrumpe el proceso, luego puede reanudarse justo donde lo dejó.
fuente
Necesita usar el protocolo SCP.
scp file you want to transfer login@address_of_second_server:/path_where_you_want_to_save
fuente