Este tutorial analizaremos un par de herramientas que pueden ayudarte a registrar todo en la terminal (localmente) para reproducirlo más tarde con los comandos script
y ttyrec
. Grabar tu escritorio puede servir para muchos propósitos: puede ser útil para auditar servidores Linux.
Las herramientas descritas en este artículo operan en varios niveles. En el nivel más simple, los comandos como script
, ttyrec
y shelr
sirven como alternativas más permanentes al historial de un shell. Por el contrario, scrot
toma imágenes fijas y cnee
registra no tanto los eventos visuales como la información técnica detrás de ellos. Se podría decir con precisión que las herramientas de grabación están disponibles para todos los propósitos y niveles de usuarios.
1. Comando script
La primera opción para registrar la actividad del terminal es el comando script
. Este comando escribe un registro de todas las acciones dentro de un shell. No es muy diferente de ver el historial de un shell, excepto que escribe en un archivo y se almacena de forma permanente. Script es uno de varias docenas de comandos instalados en distribuciones como parte del paquete linux-utils .
En su forma más simple, script se ejecuta se ejecuta en su forma simple, guardando todo en el archivo typescripty; y finalizando cuando presionas las teclas
script
Sin embargo, puedes grabar en el archivo que desees con el comando script <archivo>.
script <ArchivoLog>
script esgeekslog.txt
Podrás ver el comando script
iniciado como se muestra en la imagen de arriba, ahora puedes escribir cualquier comando, luego puedes detener la grabación con las teclas mencionadas anteriormente, o escribiendo el comando exit
.
- +15 Comandos esenciales de seguridad en Linux
- +5 comandos para usar calculadora en terminal Linux
- 9 Comandos para saber nombre y versión de distribución Linux instalada
En esta etapa, no puedes reproducir la sesión en tiempo real, pero puedes leer la salida con los comando less
, more
o cat
:
cat esgeekslog.txt
Para reproducir la sesión en lugar de leerla, debes agregar la opción --timing
que especifica el nombre del archivo timing, adicionalmente al nombre del archivo de salida:
script --timing=tiempo.txt script.log
En mi ejemplo, he guardado el archivo de tiempo como TIEMPO.txt y el archivo de salida como script.log como se muestra:
Para reproducir la sesión grabada el comando es scriptreplay
seguido por el flag --timing
, nombre del archivo de tiempo, el modificador --typescript
y el nombre de archivo de salida como en el ejemplo siguiente:
scriptreplay --timing <ArchivoTiempo> --typescript <ArchivoSalida>
O,
scriptreplay --timing <ArchivoTiempo> <ArchivoSalida>
A continuación, puedes ver el archivo tiempo.txt
.
- -d , –divisor: esta opción se utiliza cuando queremos acelerar o ralentizar la ejecución con el divisor de tiempo. El argumento aquí es un número de coma flotante. Con la opción
-m
puedes definir el tiempo en segundos para reproducir cada actividad.
El siguiente ejemplo muestra cómo reproducir permitiendo un máximo de un segundo retraso por comando:
scriptreplay -m 1 --timing <ArchivoTiempo> --typescript <ArchivoSalida>
Los siguientes ejemplos dividen el tiempo real para el factor que especifiques, en este ejemplo duplicaré la velocidad especificando el factor “2”.
scriptreplay -d 2 --timing <ArchivoTiempo> --typescript <ArchivoSalida>
- Para registrar los resultados de un solo comando que no sea una sesión de shell interactiva, utiliza la opción
-c
.
script -c 'hostname' script.log
Para más ayuda sobre el comando:
scriptreplay --help
2. Comando TTYREC
Otro método para grabar una sesión en la terminal es el comando ttyrec
, con él, es posible grabar la salida TTY de un programa en modo de texto, junto con la fecha y la hora, y luego mostrarlo como si fuera un video. Es muy útil para auditar servidores Linux.
Los tres comandos relacionados ttyrec
, ttytime
y ttyplay
se pretende que sean una versión mejorada de script
– para ser exactos, una simplificación y una división en tres comandos separados.
Para instalar ttyrec en distribuciones basadas en Debian, ejecuta:
apt install ttyrec
Una vez hecho esto, el software ya estará instalado y listo para usar. Estas son algunas de las opciones que se pueden usar para grabar:
La forma más sencilla de ejecutar programa es especificando el nombre del archivo de salida: (A menos que se especifique otro archivo, el comando ttyrec se guarda en ./ttyrecord.)
ttyrec <ArchivoLog>
El siguiente ejemplo muestra a ttyrec grabando la sesión actual en un archivo llamado ttylog:
ttyrec ttylog
Como puedes ver, puedes salir de la sesión de grabación utilizando el comando “exit
” como con el comando script
.
Para reproducir las grabaciones usaremos el comando ttyplay
seguido del nombre del archivo de registro: (La opción “-n” muestra en la pantalla la salida de todos los comandos que se ejecutaron, similar al comando de history
.)
ttyplay <ArchivoLog>
A continuación, puedes ver como se reproduce el archivo guardado:
Las opciones en ttyplay son principalmente para la velocidad. Por ejemplo, la opción opción “-s” determina la velocidad de reproducción. Varía de 1 (velocidad normal) a 10 (más rápido).
# ttyplay -s 3 archivo.rec
En el comando anterior, el video se reproducirá 3 veces más rápido de lo normal.
Usando el comando ttytime podemos determinar el tiempo de los datos grabados en segundos:
ttytime archivo
Nota: las opciones mencionadas anteriormente se tomaron del manual de ttyrec, para obtener más accesos, ejecuta en tu terminal:
man ttyrec
3. Shelr
Shelr es una combinación de script y ttyrec que registra la salida del terminal y la reproduce en el terminal. Como muchos comandos de Debian, consiste en el comando básico, seguido de subcomandos. Más inusualmente, no incluye opciones para modificar el comportamiento, pero esta estructura simple sigue siendo adecuada para su propósito.
Para comenzar a grabar eventos de terminal, ingrese el comando:
shelr record
Después de asignarle un nombre a la grabación, Shelr continuará grabando hasta que escribas exit
o presiones las teclas
El archivo guardado tiene un número aleatorio para un nombre, pero aparentemente no se espera que los usuarios interactúen directamente con el archivo. En su lugar, puedes usar el siguiente comando para ver una lista de grabaciones, cada una con el nombre que ingresaste para comenzar a grabar.
shelr list
Para volver a reproducir, ejecuta shelr play ARCHIVO
. Alternativamente, puedes ingresar la ruta completa, o en la máquina local, ejecutar replay last
para mostrar la última grabación que realizaste.
4. scrot
Scrot es un programa de captura de pantalla en línea de comandos. Requiere un mínimo de un archivo de destino, que puede estar en la mayoría de los formatos gráficos estándar, incluyendo .png, .jpeg y .tiff. No incluye el .gif, probablemente debido al boicot del formato que una vez existió.
El comando incluye varias opciones para configurar la captura de pantalla. De forma predeterminada, el scrot captura toda la pantalla, pero puedes usar -s
o --select
, y luego pulsar -u -r --focused
selecciona la ventana actualmente activa para capturar.
Puedes establecer un retraso antes de que se haga el disparo con -d SEGUNDOS
o --delay SEGUNDOS
de retraso, en caso de que tengas que establecer algo como la ventana activa, quizás acompañándola con -c
o --count SEGUNDOS
para proporcionar una cuenta atrás hasta el momento del disparo. Si tienes múltiples monitores, entonces usa -m
o --multidisp
que captura todos ellos en la toma única.
scrot -cd15
5. Conclusión
Estas son algunas de las herramientas de línea de comandos que puedes usar para registrar tus actividades de terminal. Estos programas son bastante fáciles de usar y ayudan mucho cuando necesitas ejecutar el mismo lote de comandos varias veces. Incluso pueden ayudar a los administradores del sistema a solucionar problemas y administrar sus servidores de manera efectiva. Espero que esta guía te sea útil. Por favor publica tus valiosos comentarios y sugerencias al respecto.
Otras opciones disponibles: ttyStudio, Showterm, TermRecord, Asciinema y Recterm.
Espero que hayas encontrado útil este breve tutorial sobre la grabación de sesiones de terminal, gracias por leerlo y sigue a EsGeeks para obtener actualizaciones adicionales y consejos sobre Informática y Tecnología.