Recupera tu sesión SSH con «screen» y «tmux»

Cuando tengo que ejecutar tareas peligrosas o que van a durar mucho tiempo en los entornos de producción, suelo utilizar screen. Este programa permite recuperar una conexión SSH que pudiese haberse perdido, por ejemplo, por un corte de comunicaciones.

A partir de RedHat 8, el comando screen ha quedado obsoleto. En su lugar, hay que utilizar tmux.

Para instalarlo en RedHat, hay que utilizar el comando yum install screen. Una vez instalado, su uso es muy sencillo:

  • Con el comando screen -S David guardo una sesión de screen con el nombre David, que luego podré utilizar para recuperar mi sesión en caso de necesidad.

Con el parámetro -list, veo las sesiones de screen que existen en el servidor.

[root@prt53ws1 ~]# screen -S David
[root@prt53ws1 ~]# screen -list
There is a screen on:
 31593.David (Attached)
1 Socket in /var/run/screen/S-root.

[root@prt53ws1 ~]#
  • A continuación, ejecuto cualquier tarea en el servidor. A modo de ejemplo, simplemente, ejecuto un «ls».
screen ls
  • Cierro mi cliente SSH.
Cerrar putty
  • Abro una nueva sesión de SSH y con el comando «screen -r David» recupero mi conexión de SSH, exactamente, en el mismo punto donde la había dejado anteriormente.
Screen recuperar sesion

Para cerrar una sesion de screen, ejecutaremos el comando exit.

Ampliar el tamaño de Scroll de screen

Si necesitas aumentar el número de líneas a las que puedes subir en la pantalla, es decir, aumentar el tamaño de scroll con screen, tienes dos opciones para hacerlo:

  • Combinación de teclas: Ctrl+A y luego escribe el comando:
scrollback 1000

1000 sería el número de líneas de tamaño del scroll.

  • Modifica el fichero .screenrc que hay en el HOME de tu perfil con el número de líneas que te interese escribiendo la directiva:
defscrollback 1000

TMUX

Si ya estamos utilizando tmux guardaremos la sesión con el comando:

tmux new -s Nombre_Sesión

Para recuperarla, utilizaremos:

tmux a -t Nombre_Sesión

Si no nos acordamos del nombre que le habíamos puesto a la sesión podremos listarlas con el siguiente comando:

[root@server1 ~]# tmux list-sessions
David: 1 windows (created Tue Apr 12 13:08:21 2022) [202x58] (attached)
[root@server1 ~]#
COMPÁRTEME

Deja un comentario