¿Cómo enviar la descarga del archivo SFTP al fondo?

8

Es posible que:

  1. ejecutar el comando SFTP en el equipo remoto y descargar un archivo ( ssh user@machine, sftp user2@server, get file)
  2. luego, envíe la descarga al fondo, para que pueda apagar mi computadora local
Praweł
fuente
Corríjame si estoy equivocado: 1) Está conectado localmente en la máquina A. 2) Desea conectarse a través de SSH en la máquina B. 3) En el shell de B, desea ejecutar una descarga sftp remota desde la máquina C. 4 ) Entonces quiere apagar la máquina A. ¿Es eso correcto?
Pavlos G.
A - mi computadora local; B - servidor remoto 1; C - servidor remoto 2; Quiero escribir ssh user@Ben mi máquina A, luego sftp user@Cy get some_file.tar.gzen la máquina B; Por lo tanto, me gustaría descarga a sftp un archivo de C a B y apagar mi máquina A, B dejando a distancia y C corriendo
Praweł

Respuestas:

10

Pruebe screenen la máquina B, inicie la descarga y luego desconecte:

En la máquina A:

ssh user@B

En la máquina B:

screen
sftp user@C
get some_file.tar.gz
Ctrl-a d
logout

Nunca lo intenté pero podría funcionar.

Editar: más tarde, vuelva a iniciar sesión y use screen -xpara volver a conectarse a la sesión en ejecución. Luego, apáguelo correctamente para que no consuma los recursos del servidor.

meneo
fuente
¡funciona! muchas gracias :) comando extremadamente útil ...
Viernes
y para una pantalla más funky en ubuntu, pruebe byobu.
finley
1

Si solo desea la función "desconectar" de la pantalla, hay un programa llamado "dtach" que proporciona solo esa función.

Ryan C. Thompson
fuente
0

Poner el carácter & (ampersand) detrás de un comando lo ejecuta en segundo plano. Sin embargo, no sé cómo hacerlo después de que un comando ya se haya ejecutado, ni sé si esto funciona en máquinas remotas.

Armornick
fuente
&estaría bien, pero no conozco ninguna --passwordopción que pueda pasar a través de la línea de comando (así que no puedo hacer algo como sftp --password=abc user@server:file.tar.gz &)
Praweł
0

Hay varias soluciones a este problema.

Una opción es usar el screencomando, sin embargo, parece un poco complejo.

La mejor manera que he encontrado es enviando el trabajo a un segundo plano.

En su caso, el comando sería

scp user@machine:~/filename.ext /tmp &
scp -r user@machine:~/dirname /tmp &
Thecamelcoder
fuente