Cómo grabar y reproducir sesiones de terminal de Linux utilizando los comandos ‘script’ y ‘scriptreplay’

Cómo grabar y reproducir sesiones de terminal de Linux utilizando los comandos ‘script’ y ‘scriptreplay’

En esta guía, veremos cómo usar comandos scriptreplay. y scriptreplay. en Linux que pueden ayudarlo a grabar comandos y su salida impresa en su terminal. durante una sesión determinada.

 Grabar comandos de terminal de Linux Grabar comandos de terminal de Linux Grabar y reproducir comandos de terminal Linux

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

No te pierdas: Showterm.io: una herramienta de grabación de terminal de Linux

No te pierdas: 8 mejores grabadores de pantalla de escritorio para Linux

Por lo tanto, el script es útil para brindarle una funcionalidad poderosa que lo ayuda a registrar todo lo que está impreso en su terminal en un archivo_registro. Luego puede consultar este archivo más adelante en caso de que desee ver la salida de un comando en el historial del archivo_registro.

También puede reproducir comandos que grabó usando el comando scriptreplay. usando una información de tiempo.

Cómo grabar un terminal Linux usando el comando script

El comando script. almacena las actividades del terminal en un archivo de registro que puede ser nombrado por un usuario, cuando un nombre no lo proporciona un usuario, se utiliza el nombre de archivo predeterminado, mecanografiado.

Sintaxis básica del script Comando # script [opciones]–timing = timing_file log_filename freestar.config.enabled_slots.push (LocationName: “tecmin t_incontent “, slotId:” tecmint_incontent “);

Para iniciar la grabación del terminal Linux, escriba script. y agregue el nombre de archivo. de registro como se muestra.

[email protected] ~ $. script history_log.txt. Script iniciado, el archivo es history_log. txt.

Para detener script. escriba salir. y presione [Enter].

[correo electrónico protegido] ~ $. salir. Secuencia de comandos completa, el archivo es history_log.txt.

Si el script no puede escribir en el archivo de registro nombrado, muestra un error.

Por ejemplo, en el resultado a continuación, los permisos del archivo mecanografiado. no permiten la lectura, escritura y ejecución del archivo por parte de ningún usuario o grupo. Cuando ejecuta el comando de secuencia de comandos sin un nombre de archivo de registro, intenta escribir en el archivo predeterminado, mecanografiado. por lo que muestra un error.

[correo electrónico protegido] ~ $. ls-l mecanografiado. ———1 ubuntu ubuntu 144 15 de septiembre 00:00 mecanografiado. [correo electrónico protegido] ~ $. script. script: error al abrir : mecanografiado: Permiso denegado. Terminado. Ejemplos de uso del comando de secuencia de comandos

He nombrado mi archivo de registro script.log. en el ejemplo siguiente, puede dar su archivo con un nombre diferente.

[email protected] ~ $. script script.log.

Ahora intente ejecutar algunos comandos para permitir que el script registre los comandos ejecutados en la terminal.

[email protected] ~ $. cal. Septiembre de 2015 Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [email protected] ~ $. w. 14:49:40 hasta 4:06, 2 usuarios, promedio de carga: 1,37, 1,56, 1,62 USUARIO TTY DE [email protected] IDLE JCPU PCPU QUÉ tecmint tty8: 0 10:45 4: 06m 7:40 0.36s x-session-manager tecmint pts/5: 0 13:42 4.00s 0.07s 0.00s script script.log [email protected] ~ $. uptime. 14:49:43 hasta 4:06, 2 usuarios, promedio de carga: 1.37, 1.56, 1.62 [correo electrónico protegido] ~ $. whoami tecmint [email protected] ~ $. echo ‘using script’. usando script [correo electrónico protegido] ~ $. salir. salir Script terminado, el archivo es script.log

Ahora intente ver el archivo de registro ‘ script.log. para todos los comandos grabados, mientras ve el registro se da cuenta de que el script también almacena avances de línea y retrocesos.

[correo electrónico protegido] ~ $. vi script.log. Salida de muestra ^ [[0m ^ [[255D ^ [[01; [email protegido] ^ [[01; 34m ~ $ ^ [[00m cal ^ M Septiembre 2015 ^ M Do Lu Mi Mi Ju Vi Sa ^ M 1 2 3 4 5 ^ M 6 7 8 9 10 11 12 ^ M 13 14 15 ^ [[7m16 ^ [[27m 17 18 19 ^ M 20 21 22 23 24 25 26 ^ M 27 28 29 30 ^ M ^ M ^ [[01; [correo electrónico protegido] ^ [[01; 34m ~ $ ^ [[00m] w ^ M 14:49:40 hasta 4:06, 2 usuarios, promedio de carga: 1,37, 1 .56, 1.62 ^ M USUARIO TTY DE [email protected] IDLE JCPU PCPU QUÉ ^ M tecmint tty8: 0 10:45 4: 06m 7:40 0.36s x-session-manager ^ M tecmint pts/5: 0 13:42 4,00 s 0,07 s 0,00 s script script.log ^ M ^ [[01; [correo electrónico protegido] ^ [[01; 34m ~ $ ^ [[00m tiempo de actividad ^ M 14:49:43 hasta 4:06, 2 usuarios, cargar promedio: 1.37, 1.56, 1.62 ^ M ^ [[01; [email protected] ^ [[01; 34m ~ $ ^ [[00m whoami ^ M tecmint ^ M ^ [[01; [email protected] ^ [[01; 34m ~ $ ^ [[00m echo ” ^ Hu ‘^ Hs’ ^ Hola ‘^ Hn’ ^ Hg ‘^ H’ ^ Hs ‘^ Hc’ ^ Hr ‘^ Hola’ ^ Hp ‘^ Ht’ ^ H ^ M usando el script ^ M ^ [[01; [email protected] ^ [[01; 34m ~ $ ^ [[00m exit ^ M exit ^ M Script terminado el miércoles 16 de septiembre de 2015 02:49:59 PM IST ~

Usted puede usar la opción -a. para agregar el archivo de registro o mecanografiado, conservando el contenido anterior.

[email protected] ~ $. script-a script.log. Scrip t iniciado, el archivo es script.log [email protected] ~ $. fecha. miércoles 16 de septiembre 14 : 59: 36 IST 2015 [correo electrónico protegido] ~ $. pwd. home/tecmint [correo electrónico protegido] ~ $. whereis script. script:/usr/bin/script/usr/bin/X11/script/usr/share/man/man1/script.1.gz [email protected] ~ $. whatis script. script (1): crea un texto mecanografiado de la sesión de terminal

Vea el contenido del script, inicie sesión después de usar la opción -a. para agregarlo.

[correo electrónico protegido] ~ $. vi script.log. Salida de muestra ^ [[0m ^ [[255D ^ [[ 01; [email protected] ^ [[01; 34m ~ $ ^ [[00m fecha ^ M Mié 16 de septiembre 14:59:36 IST 2015 ^ M ^ [[01; [ email protected] ^ [[01; 34m ~ $ ^ [[00m pwd ^ M/home/tecmint ^ M ^ [[01; [email protected] ^ [[01; 34m ~ $ ^ [[00m whre ^ H ^ [ [K ^ H ^ [[Kereis script ^ M script:/usr/bin/script/usr/bin/X11/script/usr/share/man/man1/script.1.gz^M ^ [[01; [correo electrónico protegido] ^ [[01; 34m ~ $ ^ [[00m cuál es el script ^ M script (1)-hacer mecanografiado de la sesión de terminal ^ M ^ [[01; [email protected] ^ [[01; 34m ~ $ ^ [[ 00m vi s ^ H ^ [[K ^ H ^ [[K ^ H ^ [[K ^ H ^ [[Kexit ^ M exit ^ M

Para registrar los resultados de un solo comando que no sea una sesión de shell interactiva, use la opción -c.

[correo electrónico protegido] ~ $. script-c ‘nombre de host’ script.log. Se ha iniciado el script, el archivo es script.log tecmint.com El script está terminado, el archivo es script.log

Si desea que el script se ejecute en modo silencioso, puede utilizar la opción -q. No verá un mensaje que muestre que el script está comenzando o saliendo.

[email protected] ~ $. script-c ‘quién’-q script.log. tecmint tty8 2015-09-16 10:45 (: 0) tecmint pts/5 2015-09-16 13:42 (: 0)

Para establezca la información de tiempo en un error estándar o utilice la opción –timing. en un archivo. La información de tiempo es útil cuando desea volver a mostrar la salida almacenada en el archivo_registro.

Iniciemos el script y ejecutemos los siguientes comandos w. uptime y cal. para ser registrados.

[correo electrónico protegido] ~ $. script–timing = time.txt script.log. Se inició el script, el archivo es script.log [email protected] ~ $. w. 15: 09:31 hasta 4:26, 2 usuarios, promedio de carga: 1.38, 1.39, 1.47 USUARIO TTY DE [email protected] IDLE JCPU PCPU QUÉ tecmint tty8: 0 10:45 4: 26m 8:15 0.38s x-session-manager tecmint pts/5: 0 13:42 3.00s 0.09s 0.00s script–timing = time.txt script.log [email protected] ~ $. uptime. 15:09:36 hasta 4:26, 2 usuarios, promedio de carga: 1.43, 1.40, 1.48 [email protected ] ~ $. cal. Septiembre de 2015 Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 6 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Puede ver el archivo script.log. y time.txt. para el comando de tiempo anterior.

[correo electrónico protegido] ~ $. vi script.log. Salida de muestra ^ [[ 0m ^ [[255D ^ [[01; [correo electrónico protegido] ^ [[01; 34m ~ $ ^ [[00m w ^ M 15:12:05 hasta 4:28, 2 usuarios, promedio de carga: 1,31, 1,37, 1,45? ^ M USUARIO TTY DE [email protected] IDLE JCPU PCPU QUÉ ^ M tecmint tty8: 0 10:45 4: 28m 8:20 0.38s x-session-manager ^ M tecmint pts/5: 0 13:42 5.00s 0.09s 0.00s script–timing = time.txt script.log ^ M ^ [[01; [email protected] ^ [[01; 34m ~ $ ^ [[00m uptime ^ M 15:12:07 up 4:28, 2 usuarios, promedio de carga: 1.29, 1.36, 1.45 ^ M ^ [[01; [email protected] ^ [[01; 34m ~ $ ^ [[00m cal ^ M Septiembre 2015 ^ M Do Lu Mi Ju Vi Sa ^ M 1 2 3 4 5 ^ M 6 7 8 9 10 11 12 ^ M 13 14 15 ^ [[7m16 ^ [[27m 17 18 19 ^ M 20 21 22 23 24 25 26 ^ M 27 28 29 30 ^ M ^ M

Ahora vea el archivo time.txt.

[email protected] ~ $. vi time.txt. Salida de muestra 0.259669 306 0.037680 829 0.000006 2 0.000002 100 0.000002 2 0.000002 102 0.000019 202 0.000004 2 0.000002 102 0.000015 100 0.000002 2 0.000003 2 0.000002 99 0.000011 2 0.000003 82 …

El archivo time.txt. tiene dos columnas, la primera columna muestra cuánto tiempo ha transcurrido desde la última pantalla y la segunda columna, muestra el número de caracteres que se han mostrado esta vez.

Use la página de manual y –help. para buscar más opciones y ayuda para usar la utilidad de línea de comandos de secuencias de comandos.

Usar scriptreplay para reproducir secuencias de comandos usando información de tiempo

El comando scriptreplay. ayuda a reproducir información en su archivo_registro. registrada por el comando script.

La información de tiempo se define mediante la opción -timing = file. utilizada con el comando script. y file. en este caso es file.txt. que se usó con el comando de secuencia de comandos.

Recuerde que debe especificar el archivo_registro. que usó con el comando de secuencia de comandos.

Deje Ahora reproducimos los últimos tres comandos w. uptime. y cal. que habíamos ejecutado de la siguiente manera.

[correo electrónico protegido] ~ $. scriptreplay–timing = time.txt script.log  Reproducir los últimos comandos ejecutados en Linux  Reproducir los últimos comandos ejecutados en Linux Reproducir los últimos comandos ejecutados en Linux

Cuando log_file. se reproduce usando la información de tiempo, los comandos registrados se ejecutan y su salida se muestra al mismo tiempo que se mostró la salida original mientras se grababa.

Resumen

Estos dos comandos, script. y scriptreplay. es fácil de usar y ayuda mucho cuando necesitas ejecutar el mismo lote de comandos varias veces. Ayudan mucho en la administración de servidores que solo tienen una interfaz de línea de comandos para interactuar con su sistema. Espero que esta guía haya sido útil y si tiene algo que agregar o enfrenta un desafío mientras los usa, no dude en publicar un comentario.