Screen: abriendo y recuperando múltiples terminales

Como administrador de servidores, muchas veces necesitamos conectarnos remotamente mediante la consola por ssh y realizar alguna operación. Por ejemplo, me entero que sale una nueva versión de la distro que estoy usando y quiero actualizarlo; bajo Ubuntu, lo podemos hacer facilmente mediante el comando

sudo apt-get dist-upgrade

y tener paciencia, ya que esta operación tarda un buen tiempo (baja toooodos los paquetes actualizados, y luego tiene que instalar, actualizar y eliminarlos, con lo cual se entiende). Pero… ¿qué pasa si en algún punto durante esta actualización se nos cierra la terminal por error, o se nos corta la conexión a Internet o simplemente se cierra la conexión remota, o cualquier otra cosa que provoque la suspención de la actualización? Es un bajón! hay que arrancar de nuevo, tirar nuevamente el comando para actualizar la distro, y volver a esperar.

Bueno, existe una alternativa a esto: podemos utilizar un multiplexador de terminales, como ser screen, y dejar las tareas ejecutandose en backround si la necesidad de tener una terminal que nos muestre los resultados. ¿cómo funciona esto? Es muy simple el proceso:

1. primero inicio una terminal multiplexada, ya sea en un equipo local o remoto.

2. Hago todo lo que necesito y a continuación guardo la sesión en esa terminal y la cierro. Esto no corta el proceso, sino que queda ejecutándose de fondo.

3. Cuando tengo ganas, recupero la sesión guardada, con lo cual puedo ver el estado actual de esa terminal, como si nunca la hubiese cerrado).

¿y cómo hago todo esto?

Primero hay que instalar screen. En Ubuntu, con el famoso y conocido:

sudo apt-get install screen

Una vez instalado, podemos iniciar terminales multiplexadas, cerrarlas y recuperarlas más adelante. Les paso los comandos más básicos:

screen: crea una sesion anónima, sin nombre específico.

screen -S sessionName: a las terminales podemos darles un nombre; esto nos permite realizar múltiples tareas en paralelo, y recuperarlas a partir del nombre.

screen -e newSessionName : le cambiamos el nombre a la sesión actual

screen -ls : listado de todas las sesiones actuales

screen -r  : nos conectamos con la última sesión que utilizamos. No es necesariamente la última que creamos, sino la última que hemos guardado y dejado en background. Esto sirve mucho si tenemos sesiones anónimas.

screen -r sessionName  recuperamos (se le dice attach en la jerga) la sesión con nombre sessionName

Algunas combinaciones de teclado:

Ctrl Alt d –> Detachea la session vigente del shell, y deja la terminal ejecutandose en background

Ctrl Alt ?–> listado de comandos disponibles

screen -x sessionName –> nos conectamos con la session llamada sessionName, incluso si nunca había sido detachada.

Screen nos permite también gestionar ventanas (Windows) y regiones (dividimos la ventana en subzonas o subáreas y trabajamos con ellas independientemente). Podemos encontrar más información aquí. Espero que les sirva.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: