Grabando una shell con script y scriptreplay - Userlinux.net

Al hilo de la entrada anterior hablando sobre los terminales compartidos con screen intentaremos ir más allá y -además de interactuar y enseñar comandos shell- grabar todo lo que estamos haciendo en un archivo que luego podremos reproducir como si de un vídeo se tratase. Esto puede hacerse gracias a…

Grabando una shell con script y scriptreplay

17.Nov.2009 ~ 4 Comentarios ~ 1180 Lecturas
Al hilo de la entrada anterior hablando sobre los terminales compartidos con screen intentaremos ir más allá y -además de interactuar y enseñar comandos shell- grabar todo lo que estamos haciendo en un archivo que luego podremos reproducir como si de un vídeo se tratase.

Esto puede hacerse gracias a los comandos script y scriptreplay, que se encargan de grabar las pulsaciones y el timing de las mismas para luego reproducirlo las veces que haga falta. Todo esto en consola, guardando el log en archivos de texto fácilmente comprimibles y sin dependencias extrañas. ¿Tentador?, vamos a probar.

Lo primero que tenemos que hacer es ejecutar el comando script para que empiece a grabar todo lo que hagamos, además tenemos que indicarle que grabe el timing en otro archivo de forma que el comando completo sería el siguiente:
$ script -t 2> sesion.time -a sesion.demo
Script iniciado; el fichero es sesion.demo
[...]
Empezamos a grabar los comandos que queramos ejecutar y a la hora de pararlo lo haremos pulsando Ctrl+d, lo que escribirá en disco esos dos archivos, necesarios para su posterior reproducción.
[Ctrl+d]
$ exit
Script terminado; el fichero es sesion.demo
¿Cómo reproducirlos?, sencillo, tan solo hay que decirle a scriptreplay cual es el archivo de timing y el de log para que mezcle la información, de la siguiente forma:
$ scriptreplay sesion.time sesion.demo
Y veremos como empieza a reproducirse todo lo grabado exactamente tal y como se ejecutó, con sus virtudes y sus defectos (si, los fallos también aparecen :P).

Llegados a este punto deberíamos estar -otra vez- sorprendidos por la sencillez y la potencia que nos ofrece una simple línea de comandos.

Enlaces relacionados

Categorías: sistemas
Tags: shell script

Comentarios


gravatar
17.Nov.2009
Esta sí me ha gustado, me la anoto porque me puede servir para muchas cosas, porque yo suelo hacer scripts tras trastear un buen rato y es una buena forma de guardar el proceso. Gracias ;)

gravatar
17.Nov.2009
Y encima los logs -y los timing- se guardan en archivos de texto que tienen un muy buen ratio de compresión a la hora de almacenarlos así que -imho- miel sobre hojuelas.

gravatar
19.Nov.2009
Mirando mirando, para una movida que me hacia falta hoy, he descubierto que...

-a Append the output to file or typescript, retaining the prior contents.

Por lo que incluso puedes \"grabar\" trozos en momentos diferentes e ir pegandolos unos a otros ;D

gravatar
22.Jun.2011
Interesante, alguien me puede ayudar sobre como combinarlo con el comando "screen". Es que quiero tener la posibilidad de recuperar todas las sesiones que tenia abiertas en el servidor con screen luego de apagarse el servidor.

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece
  • r0sk
  • flexo
  • r0sk
  • MarcosBL
  • r0sk
  • isra

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ubuntu juegos 2007 web twitt futbol cumpleaños ds django mundial apple rfilms conciertos alemania_2006 lugo macosx programación frases mercurial lucux php userlinux debian blog rsidenotes twitter felicidades cakephp meme ssh bsd barça sidenotes iphone bash vacaciones blogs opinion blogsfera seguridad linux champions humor freebsd personal mysql nintendo openbsd canción sysadmin bake games ps3 2008 cake deportes hack films mac league

Archivo

Social

Enlaces de interés