ssh – ¿Se cierra una transferencia "scp" cuando cierro el shell?

Pregunta:

Tengo transferencia scp (de un servidor remoto a otro), eso es bastante grande.

Entonces, tal vez quiero cerrar la computadora desde la cual ejecuté este comando, ¿terminará esto la transferencia? Tengo acceso ssh al shell usando el programa Bitwise.

Respuesta:

Hay varias soluciones.

Antecedentes y rechazo del proceso

  1. Abra la terminal ssh al servidor remoto.
  2. Comience la transferencia scp como de costumbre.
  3. Fondo del proceso scp ( Ctrl + Z , luego el comando bg .)
  4. Rechazar el proceso en segundo plano ( disown ).
  5. Termine la sesión ( exit ) y el proceso continuará ejecutándose en la máquina remota.

Una desventaja de este enfoque es que los descriptores de archivo para stdout y stderr aún contendrán referencias al tty de su sesión ssh. El terminal puede bloquearse cuando intenta salir debido a esto. Puede solucionar este problema escribiendo ~. para forzar el cierre de su cliente ssh (esa secuencia de escape debe seguir una nueva línea … ver también ~? ). Si el proceso que está abandonando escribe en stdout o stderr, el proceso puede salir prematuramente si el búfer tty se sobrellena.

Crear una sesión de pantalla y separarla

La pantalla GNU se puede usar para crear una sesión de terminal remota, que se puede desconectar y continuar ejecutándose en el servidor después de cerrar la sesión. A continuación, puede volver a iniciar sesión en el servidor en una fecha posterior y volver a conectarse a la sesión.

  1. Inicie sesión en el servidor remoto a través de ssh.
  2. Inicie una sesión de pantalla, screen -D -R <session_name> sesión screen -D -R <session_name> .
  3. Comience la transferencia scp como de costumbre.
  4. Separe la sesión de pantalla con Ctrl + A y luego d .
  5. Terminar la sesión ssh ( exit )

Para volver a conectarse a la sesión:

  1. Inicie sesión en el servidor remoto a través de ssh.
  2. Vuelva a conectar a la sesión de pantalla, screen -D -R <session_name> sesión screen -D -R <session_name>

Ejecute el comando sin colgar

Vea la respuesta usando nohup .

Utilice un programador de tareas

Esta es la mejor solución si se trata de un tipo de tarea periódica que desea automatizar.

Utilice crontab , at o batch para programar la transferencia.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım