28 junio 2013

Curiosidades de la consola, manejadores de pantalla VT100/ANSI

Alter abs lactis igneus, etiam ab bovis inflo (El que con leche se quema, hasta a la vaca le sopla)

Hace sesenta años, si salias a la calle sin sombrero era obvio que eras un tanto excentrico. Hoy en dia, si salis a la calle con sombrero es obvio que estas mas loco que una cabra, La razon de que sea asi es que los fabricantes de champu tienen mejores departamentos de marketing que los sombrereros. No obstante lo cual no me privo de usar mi sombrero las veces que lo desee...

Hace sesenta años, si tenias acceso a una computadora, trabajabas directamente sobre la terminal fisicamente. Hoy en dia, si tenes acceso a una computadora lo mas comun es que sea via remota, aunque fisicamente estes en la misma locacion. No parece mucho, pero es lo que hay, y que mejor que sacarle el maximo provecho posible a SSH conjuntamente con SCREEN...

Teniendo en cuenta que PuTTY permite ser instalado en una variedad muy grande de dispositivos (celulares, PDAs, tablets, televisores, laptops y otras computadoras), y desde ahi llegar a la consola remota que estamos queriendo administrar, que mejor que poder recuperar nuestra sesion TELNET o SSH y continuar en lo que estabamos...

El comando SCREEN, es un manejador de pantalla con emulacion VT100/ANSI, ideal para dejar nuestras sesiones, remotas o no, funcionando tranquilamente y no perder los resultados para una consulta posterior (del buffer de la consola, claro esta).
El manual del comando tiene una pagina muy completa del mismo, desde como guardar un log (bitacora) de la consola remota, a como cambiarle el titulo de la ventana, pasando por dividir la consola en dos partes, o saber como copiar y pegar entre consolas virtuales. Vamos, que "esta todo pago", solo hace falta leerlo un rato para darnos cuenta que realmente esto es un producto muy bueno y de extrema calidad...

Para abandonar la sesion virtual, pero sin cerrar la consola remota, accedemos a una lista de comandos, que como bien nos documenta el manual, empiezan por "C-a" (lease tecla funcion CONTROL y tecla letra a simultaneamente, de ahora en adelante) y "algo mas" que es el comando dentro de SCREEN, como los ejemplos siguientes, pero sin limitarnos a solo estos:

Listar las consolas virtuales funcionando
screen -ls (o tambien -list)



vampii@khamul:~$ screen -ls
No Sockets found in /home/vampii/.screen.

vampii@khamul:~$

En el caso anterior, el usuario no tiene ninguna sesion remota iniciada, en el ejemplo siguiente, el todopoderoso root tiene tres:



root@khamul:~# screen -ls
There are screens on:
17480.pts-1.khamul (Attached)
17253.pts-1.khamul (Detached)
17257.pts-1.khamul (Detached)
3 Sockets in /root/.screen.

root@khamul:~#



Recuperar una sesion previa
screen -r

root@khamul:~# screen -r 17253

Aca recuperamos la sesion invocada, solo a modo de muestra, capture esto, recordemos que puede ser cualquier sesion remota, en este caso dentro del venerable NodoGlaurung (http://wiki.buenosaireslibre.org/NodoGlaurung), mientras suena "Susi Cadillac" de Pappo de fondo:


.8c           .O@O           C@C          C@c         :@O  
:@@@o            :@@:          C@c         .@8          O@. 
c@@@@@O            .8@:         .88          C@:         c@o 
c@@@@@@@8.           .8@.         o@c         :@C         .8C 
o@@@@@@@@@@.           c@o         .@C          8O          88 
C@@@@CCCO@@@@c           88          O8          C8.         C8.
O@@@@@    @@@@@o          C8          C8          C8.         o8.
@@@@@@@oooo@@@@@@O         O8          O8          C8.         o8.
@@@@@@@@@@@@@@@@@@        :@C         .8O          88          O8 
@@@@@@@@@@@@@@@@@@.       O@:         c@o         .@C         .8C 
.@@@@@@@@@@@@@@@@@@:      O@o          8@.         o@c         :@o 
:@@@@@@@@@@@@@@@@@@:     O@o          o@o          88          C@: 
c@@@@@@@@@@@@@@@@@@:   o@@c          c@O          o@o         .@8  
c@@@@@@@@@@@@@@@@@@o o@@o           c@8          .@8          o@c  
@@@@@@@@@@@@@@@@@@@@@@c            c@8           8@:         .@8   
O@@@@@@@@@@@@@@@@@@O              O@O           O@c          O@:   
O@@@@@@@@@@@@@@@@@@O            c@@c           O@o          o@o    
8@@@@@@@@@@@@@@@@@@O          c@@o           .8@c          c@O     
8@@@@@@@@@@@@@@@@@@8        C@@o            c@8.          c@O      
@@@@@@@@@@@@@@@@@@@@    .o@@8:             O@O           c@O       
c@@@@@@@@@@@@@@@@@@@@:o8@@O:              c@@:           C@O        
8@@@@@@@@@@@@@@@@@@@@8C:                c@@o            O@o         
Obelisco GNU/Linux Nodo Glaurung
http://wiki.buenosaireslibre.org/Obelisco

root@glaurung:~#
[ khamul ][ (0*$bash) ][2013-05-29 21:52 ]


Salimos pero dejando funcionando la sesion con "C-a d" (tecla funcion CONTROL y tecla letra a simultaneamente, y despues tecla letra d) y la pantalla nos muestra lo siguiente, volviendo a la sesion anterior:



[detached]
root@khamul:~#


Donde podemos recuperar otra sesion, como ejemplo, la del "permanentemente en pruebas" NodoLomaw (http://wiki.buenosaireslibre.org/NodoLomaw), un humilde TP-Link TL-MR3020:



root@khamul:~# screen -r 17257



.8c           .O@O           C@C          C@c         :@O  
:@@@o            :@@:          C@c         .@8          O@. 
c@@@@@O            .8@:         .88          C@:         c@o 
c@@@@@@@8.           .8@.         o@c         :@C         .8C 
o@@@@@@@@@@.           c@o         .@C          8O          88 
C@@@@CCCO@@@@c           88          O8          C8.         C8.
O@@@@@    @@@@@o          C8          C8          C8.         o8.
@@@@@@@oooo@@@@@@O         O8          O8          C8.         o8.
@@@@@@@@@@@@@@@@@@        :@C         .8O          88          O8 
@@@@@@@@@@@@@@@@@@.       O@:         c@o         .@C         .8C 
.@@@@@@@@@@@@@@@@@@:      O@o          8@.         o@c         :@o 
:@@@@@@@@@@@@@@@@@@:     O@o          o@o          88          C@: 
c@@@@@@@@@@@@@@@@@@:   o@@c          c@O          o@o         .@8  
c@@@@@@@@@@@@@@@@@@o o@@o           c@8          .@8          o@c  
@@@@@@@@@@@@@@@@@@@@@@c            c@8           8@:         .@8   
O@@@@@@@@@@@@@@@@@@O              O@O           O@c          O@:   
O@@@@@@@@@@@@@@@@@@O            c@@c           O@o          o@o    
8@@@@@@@@@@@@@@@@@@O          c@@o           .8@c          c@O     
8@@@@@@@@@@@@@@@@@@8        C@@o            c@8.          c@O      
@@@@@@@@@@@@@@@@@@@@    .o@@8:             O@O           c@O       
c@@@@@@@@@@@@@@@@@@@@:o8@@O:              c@@:           C@O        
8@@@@@@@@@@@@@@@@@@@@8C:                c@@o            O@o         

BaleroRodante GNU/Linux Nodo Lomaw
http://wiki.buenosaireslibre.org/BaleroRodante

root@lomaw:~#
[ khamul ][ (0*$bash) ][2013-05-29 21:59]


(Volvemos a salir pero dejando funcionando la sesion con "C-a d" y la pantalla nos muestra lo siguiente, volviendo a la sesion anterior, como con el otro ejemplo)
[detached]
root@khamul:~#



Ponerle "titulo" a una consola virtual
screen -t

Remover las consolas virtuales "muertas" o no recuperables
screen -wipe

Enviar un comando a una consola virtual en funcionamiento

screen -X




Todo el comportamiento de SCREEN puede personalizarse totalmente, ya sea editando el archivo "/etc/screenrc" o en el HOME del usuario, el archivo ".screenrc" propio. Pueden encontrar ejemplos de configuraciones en "/etc/screenrc" y tambien en "/etc/etcscreenrc", donde obviamente podemos implementar ACLs de acceso y uso y demas yerbas...

Realmente es una herramienta muy pero que muy comoda para el trabajo de todos los dias, donde ya no nos tenemos que preocupar mas de si la conexion se pierde, que si no tengo disponibilidad de energia o de que si tardo porque, parafraseando a OSiUX (www.osiux.com.ar) "Dame una consola y conquistare al mundo"... Y seguir disfrutando de nuestros "sombreros llenos de cielo"

Y si tenes algun ¡WTF! puedo darme el lujo de responder ¡RTFM! :P

No hay comentarios:

Publicar un comentario