Script, graba y reproduce la actividad de sesiones de la terminal
En el siguiente artículo vamos a echar un vistazo Script. Se trata de una herramienta de línea de comando que se utiliza para capturar o grabar la actividad de las sesiones de la terminal. Después la sesión grabada, puede reproducirse utilizando el comando scriptreplay.
En las siguientes líneas vamos a ver cómo instalar la herramienta de línea de comandos script y cómo registrar la actividad de la sesión de terminal. En general, los administradores de Gnu/Linux usan el comando history para rastrear qué comandos se ejecutaron en sesiones anteriores. Pero este comando no almacena la salida del comando, lo cual puede resultar una limitación.
Como puede haber algunos escenarios en los que queramos verificar la salida de los comandos de la sesión anterior, para compararla con la sesión actual. Además también podemos encontrarnos con algunas otras situaciones en las que queramos guardar todas las actividades de sesión de la terminal para futuras referencias. En casos como estos, el comando de script puede resultar útil.
Instalación de la herramienta Script en Ubuntu / Linux Mint
Script es quizás la herramienta de referencia a la hora de grabar sesiones de terminal. Viene instalado por defecto en la mayoría de distribuciones y es tremendamente sencilla de utilizar. En caso de no encontrala, se puede ejecutar el siguiente comando en la terminal (Ctrl+Alt+T) para instalar el paquete necesario:
sudo apt install util-linux
Usar la utilidad de script
El uso de esta herramienta es sencillo. No tendremos más que escribir el comando script en la terminal (Ctrl+Alt+T) y después pulsar Intro. Esto comenzará a capturar nuestra actividad de sesión de terminal actual dentro de un archivo llamado ‘typescript‘.
script
Para detener la grabación de las actividades de la sesión, podemos pulsar Ctrl+D o escribir el siguiente comando y pulsar Intro:
exit
La sintaxis que podemos utilizar con esta herramienta es la siguiente:
script {opciones} {nombre-archivo}
Para más información podemos ejecutar la ayuda escribiendo:
script -h
Algunos ejemplos del comando script
Comencemos a grabar nuestra sesión de terminal ejecutando el comando script. Como mencionamos más arriba, los registros de sesión de terminal se guardan en el archivo ‘typescript‘
Este archivo lo vamos a localizar en el directorio de trabajo en el que lancemos el comando script. Podremos ver el contenido del archivo typescript usando el comando cat / vim.
ls -l typescript
Utilizar un nombre de archivo personalizado con el comando script
Supongamos que queremos usar nuestro nombre de archivo personalizado para el comando script. Para hacerlo solo tendremos que especificar el nombre del archivo después del comando. En el siguiente ejemplo vamos a usar como nombre de archivo ‘session-log- (current-date-time) .txt‘.
script sessions-log-$(date +%d-%m-%Y-%T).txt
Después ya podremos ejecuta los comandos que queramos y terminar la grabación escribiendo:
exit
Añadir la salida de comandos al archivo de script
Si ya ejecutamos el comando script antes y ya se había registrado la salida de comandos en un archivo llamado session-log.txt (por ejemplo), es posible que queramos agregar la salida de los comandos de nuevas sesiones a este archivo. Para hacerlo no tendremos más que añadir la opción ‘-a‘ al comando script:
script -a sessions-log.txt
Una vez cerrada la grabación, podemos utilizar el comando cat para ver los registros actualizados de la sesión:
cat session-log.txt
Reproduce la actividad de sesión de terminal de Gnu/Linux grabada
Primero vamos a registrar la información de sincronización en un archivo y capturar la salida de los comandos en un archivo separado, esto se puede lograr en el comando de script pasando el archivo de sincronización usando la opción –timing:
script --timing=timing.txt session.log
Ahora vamos a poder reproducir las actividades de sesión de terminal grabadas utilizando el comando scriptreplay:
scriptreplay --timing=timing.txt session.log
Para reproducir debemos utilizar la herramienta scriptreplay. Esta nos va a permitir reproducir lo que grabamos previamente. Pero además tiene algunas opciones muy interesantes para mejorar la reproducción. Estas las vamos a poder consultar en la ayuda que podremos ver escribiendo:
scriptreplay -h
Hoy en día podemos encontrar grandes opciones para grabar la sesión de una terminal, como podrían ser asciinema o termrecord. Pero como siempre, lo recomendable es que cada usuario haga sus pruebas y saque sus propias conclusiones a la hora de encontrar el software que mejor se adapte a sus necesidades.