Grabar actividad y comandos terminal Linux
Grabar actividad y comandos terminal Linux

Cómo grabar toda actividad/comando en terminal Linux

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.

Nota

El comando history es una gran utilidad de línea de comandos que ayuda a los usuarios a almacenar el comando utilizado anteriormente, aunque no almacena la salida de un comando.

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 Ctrl + D.

script

Sin embargo, puedes grabar en el archivo que desees con el comando script <archivo>.

script <ArchivoLog>
script esgeekslog.txt
Comando script en Linux
Comando script en Linux

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.

Ejemplo comando script en Linux
Ejemplo comando script en Linux

En esta etapa, no puedes reproducir la sesión en tiempo real, pero puedes leer la salida con los comando lessmorecat:

cat esgeekslog.txt
Ver sesión de comandos grabada
Ver sesión de comandos grabada

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:

Comando script con timing
Comando script con timing

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.

Archivo de tiempo scriptreplay
Archivo de tiempo scriptreplay
scriptreplay para reproducir script utilizando archivo time
scriptreplay para reproducir script utilizando archivo time
  • -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
Registrar comando con script
Registrar comando con script

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 ttyrecttytimettyplay 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
Instalar ttyrec en Linux
Instalar ttyrec en Linux

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
Comando ttyrec ttylog Linux
Comando ttyrec ttylog Linux

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 Ctrl + D, luego guardará la grabación en un archivo en el subdirectorio ~/.local/share/shelr.

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 Intro para seleccionar un área de la pantalla. De manera similar, -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.

Más artículos
Guia Administrar Cuentas de Usuarios Net User
Cómo Administrar Cuentas de Usuarios con Net User en Windows