Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Mi experiencia del día con los programas libres

Envite's Diary
Por Envite
departamento La-experiencia-del-día-con-los-programas-libres , Sección Diarios
Puesto a las Tue Oct 20th, 2009 at 09:02:47 PM CET
Hoy quiero hablar del que seguramente sea un vejo conocido de todos: screen. En mi «trabajo» hay una máquina en la ejecuto programas. Y no está en mi despacho. Así que accedo por ssh. Pero las conexiones ssh tienen un problema: a veces se caen. Y una feature: salir de la sesión en el ordenador local implica perder la sesión en el ordenador remoto. Y eso uno no se lo puede permitir cuando un programa puede tardar en ejecutarse días. La solución: screen.

 


Algo de trasteo con el .screenrc me ha llevado a
termcapinfo xterm* ti@:te@

caption always # activates window caption
caption string '%{= wk}[ %{k}%H %{k}][%= %{= wk}%?%-Lw%?%{r}(%{r}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %{k}][%{b} %d/%m %{k}%c %{k}]' # good looking window bar

bindkey -k k5 prev # F5 for previous window
bindkey -k k6 next # F6 for next window
y un poco más en el .bashrc me ha dado
if [ $TERM = "screen" ] ; then
  export PS1='\[^[[1m^[[31m\]SCREEN\[^[(B^[[m\] \u@\h:\w\$ '
else
  export PS1='\u@\h:\w\$ '
fi
Con lo cual ahora tengo un sistema en el que no me puedo olvidar de si estoy o no en una sesión de screen, ni de en qué ventana estoy de las muchas que puedo tener abiertas a la vez. Esto empieza a ser un entorno decente de trabajo.
< Software libre, hardware libre, ¿servicios libres? (25 comments) | Llega otra vez ese momento en la vida de Libertonia... (3 comments) >
Enlaces Relacionados
· screen
· More on Envite's Diary
· Also by Envite

Encuesta
¿Qué es &lt;tt&gt;screen&lt;/tt&gt;?
· Un multiplexador de shell 0%
· El mejor multiplexador de shell 0%
· El mejor programa libre que existe 50%
· Hace hasta café... 0%
· Lo que diga la rubia 50%
· ¿Que qué es qué? 0%

Votos: 2
Resultados | Otras Encuestas

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Mi experiencia del día con los programas libres | 4 comentarios (4 temáticos, editoriales, 0 ocultos)
Screen, una de las maravillas de Unix (none / 0) (#1)
por atopos a las Tue Oct 20th, 2009 at 11:39:25 PM CET
(Información Usuario) http://los-pajaros-de-hogano.blogspot.com

Yo vivo prácticamente todo el día con screen. Tengo un terminal abierto con las aplicaciones de consola de uso común corriendo sobre screen. Algo que screen permite fácilmente con líneas de configuración como éstas:
screen -t bash
screen -t mail           mutt
screen -t news           newsbeuter
screen -T xterm -t web   w3m http://google.com
screen -t proc           htop
...
Por si fuera poco, con screen también puedo acceder limpiamente, a través del puerto serie con un cable null-modem, a la consola de un ordenador distante. Por ejemplo, hoy mismo he tenido que modificar la bios de un servidor y no he necesitado más consola que la de mi propio ordenador de escritorio (adiós monitor y teclado extra). Tengo configurada esa bios para que acepte redirección de consola y definido el puerto serie que servirá de conexión, así como la tasa de baudios con la que trabajaré. Con esos presupuestos, me basta ejecutar este comando desde el terminal para acceder a la bios del server [o a la sesión del sistema operativo (pero para eso hace falta configurar también el gestor de arranque del server)]:
screen -c /etc/screenrc /dev/ttyS0 115200
Desde hace un tiempo no puede concebir mi vida sin screen.



 
mi .screenrc (none / 0) (#2)
por funky a las Wed Oct 21st, 2009 at 11:41:15 AM CET
(Información Usuario) http://incubo.org

por si a alguien le interesa, es un poco más completo que el otro (muestra uptime, temperatura de la cpu, carga del sistema), está pensado para servers.


defc1 on
defutf8 on

backtick 2 300 0 temp
backtick 3 300 0 get-uptime
caption always '%{= dg}%{+b dw} %{-b dg}(%{+b dy}%n%f%? %{dw}%u%?%{-b dg}|%{+b dc}%t%{-b dg})%? (%{+b db}%h%{-b dg})%? %{+b dw}%=%{-b dg} (%{dw}temp: %2`C%{dg}) (%{dw}uptime:%3`%{dg}) (%{dy}%l%{dg})'
hardstatus alwayslastline '%{+b dw} %{+b dc}%-Lw%50>%{dg}(%{ry}%n%f* %t%{dg})%{dc}%+Lw%<%{dw} %=%{-b dg}(%{dm}%d/%m/%y %c:%s%{dg})'

hace falta hacer ese par de scripts temp y get-uptime, en este caso pasteo los que hice para openbsd, pero cambiarlos a cualquier otro *nix es practicamente trivial.

temp:
#!/usr/local/bin/bash
sysctl |grep temp2 |cut -f1 -d" " | cut -f2 -d"=" | cut -f1 -d"."

get-uptime:
uptime |cut -f5,6 -d" " |cut -f1 -d","



abstenciones (none / 0) (#3)
por funky a las Wed Oct 21st, 2009 at 12:33:30 PM CET
(Información Usuario) http://incubo.org

abstenerse por favor a corregir con sed o awk la guarrada de los cut's enlazados.

[ Padre ]


 
nohup (none / 0) (#4)
por jorginius ("jorginius" en Google Mail) a las Wed Oct 21st, 2009 at 10:53:34 PM CET
(Información Usuario) http://www.rodriguezmoreno.com

salir de la sesión en el ordenador local implica perder la sesión en el ordenador remoto. Y eso uno no se lo puede permitir cuando un programa puede tardar en ejecutarse días. La solución: screen.

En realidad la solución a eso es el nohup(1) de toda la vida. Te lo digo por si te encuentras alguna vez una máquina sin screen o quieres arrancar un script como demonio.

Usar screen sólo por eso es un poco matar moscas a cañonazos.



 
Mi experiencia del día con los programas libres | 4 comentarios (4 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda