Cómo capturar sesiones de terminal y salida con el comando de script de Linux

linux script El comando crea un archivo escrito desde su sesión de terminal. Esto significa que si invoca el script comando, se le coloca en una subcapa de sesión de terminal "supervisada y registrada" que se guarda en un archivo de texto ASCII. Cuando se crea con un archivo de sincronización, puede reproducir la sesión, incluida la salida. El objetivo de script es que puede obtener fácilmente resultados de muestra de cualquier comando a través de una sesión interactiva exactamente como se muestra en su terminal. Puede utilizar la tecla de retroceso, editar archivos, crear archivos y ejecutar comandos simples o complejos.

El valor de script El comando está en su capacidad de capturar la salida durante su sesión de terminal para cualquier comando de terminal sin redirección, lo que no siempre funciona. Me he sentido frustrado tantas veces tratando de capturar la salida de un comando que salió mal hasta que descubrí script. Con los operadores de redirección estándar, parte de la salida se puede redirigir a un archivo, mientras que otros comandos solo mostrarán la salida a la salida estándar o a la pantalla. La mayoría de los administradores de sistemas utilizan el script Comando para mostrar la salida al instalar software, durante la solución de problemas o con fines de desarrollo y programación.

Sorprendentemente, el script El comando no lo ayuda a crear scripts de shell.

Índice

Opciones de secuencia de comandos

Como con la mayoría de los comandos que uso, solo uso un subconjunto de las opciones disponibles para ellos. el script El comando tiene varias opciones que nunca he encontrado útiles en mi propio trabajo. Los únicos que uso son:

  • -a para agregar nuevos comandos y salida a un archivo utilizado anteriormente.
  • -q para eliminar las instrucciones iniciales de inicio y fin al usar script.
  • --t para guardar la información de tiempo para la reproducción.

cuando uso script, todavía uso --t para crear un archivo de sincronización y -q para el modo silencioso. solo uso -a cuando necesito agregar más información a un archivo de script existente, lo cual es raro.

Usando guiones

Aquí hay dos ejemplos estándar de cómo uso script:

$ script --t=<logfile> -q <script file>

Y, para anexar a script file:

$ script --t=<logfile> -q -a <script file>

O logfile y script file puede ser cualquier nombre que elija. Cuando desee finalizar y guardar el archivo, utilice Ctrl-D en tu teclado. Puede ver, editar o eliminar el archivo de secuencia de comandos y el archivo de registro a voluntad. Son simples archivos de texto ASCII.

Aquí un ejemplo:

$ script --t=script_log -q scriptfile

corrí el ls ordenar el who comando, luego terminé el script con Ctrl-D.

$ ls
blah.txt  test1 test2 doc.txt
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

cuando presionas Ctrl-D, el script finaliza y muestra salir.

Utilizar el cat Comando para mostrar el contenido de scriptfile.

$ ls
blah.txt  file_time   scriptfile  script.rec    shell_record1  shell_record3  time_log
file_log  record.scr  script_log  scriptrecord  shell_record2  snap           typescript
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

Script done on 2021-01-20 14:47:28-06:00

Si quieres, también puedes cat el script_log archivar.

$ cat script_log
0.088699 31
3.393729 1
0.246070 1
0.540094 2
0.003060 196
0.000195 31
2.136900 1
0.177266 1
0.179336 1
0.540818 2
0.003883 134
0.000210 31
4.676286 6

Este es el archivo de registro de sincronización que se comporta igual que un registro de transacciones para su script comandos y respuestas. Es importante cuando lea el archivo, que demuestro en el artículo de seguimiento, Cómo reproducir sesiones de terminal grabadas con el comando de script de Linux.

Conclusión

Para mi la mejor aplicación de script El comando se usa para capacitar a los nuevos usuarios de Linux en el uso de los comandos y mostrarles el resultado esperado en tiempo real, como si estuvieran interactuando con la sesión de la terminal ellos mismos. Para usuarios más experimentados, puede crear una sesión de capacitación que enseñe cómo instalar o configurar un nuevo software. La capacitación es la aplicación en la que pienso debido a mi historial de capacitación de nuevos administradores de sistemas y redacción de artículos instructivos para varios sitios. Y dado que la salida está en archivos de texto ASCII, puede modificar la salida para sus propias necesidades y audiencias.

Artículos de interés

Subir