LINUX

Cómo utilizar el comando «Script» para grabar una sesión de terminal de Linux

Este comando de secuencia de comandos es muy útil para el administrador del sistema. Si ocurre algún problema en el sistema, es muy difícil encontrar qué comando se ejecutó anteriormente. Por lo tanto, el administrador del sistema conoce la importancia de este comando de secuencia de comandos. A veces estás en el servidor y piensas que a tu equipo oa alguien que conoces le falta una documentación sobre cómo realizar una configuración específica. Es posible que realice la configuración, registre todas las acciones de su sesión de shell y muestre el registro a la persona que verá exactamente lo que tenía (el mismo resultado) en su shell en el momento de la configuración.

¿Cómo funciona el comando de secuencia de comandos?

El comando script graba una sesión de shell para que pueda ver la salida que vio en ese momento e incluso puede grabar con tiempo para que pueda tener una reproducción en tiempo real. Es realmente útil y muy útil en los momentos y lugares más extraños.

El comando de secuencia de comandos mantiene un registro de acciones para varias tareas. El script registra todo en una sesión, como las cosas que escribe, las cosas que ve. Para hacer esto, simplemente escriba texto comando en el terminal y escriba Salida cuando esté terminado. Todo entre el texto y el Salida El comando se registra en el archivo. Esto incluye los mensajes de confirmación del propio script.

1. Grabe su sesión de terminal

script hace un mecanografiado de todo lo impreso en su terminal. Si se proporciona el archivo de argumentos, el script guarda todos los diálogos en el archivo indicado en el directorio actual. Si no se proporciona un nombre de archivo, el texto mecanografiado se guarda en el texto mecanografiado predeterminado. Para grabar su sesión de shell y lo que está haciendo en el shell actual, simplemente use el siguiente comando

# script shell_record1
Script started, file is shell_record1

Indica que un archivo shell_record1 es creado. Revisemos el archivo

# ls -l shell_*
-rw-r--r-- 1 root root 0 Jun 9 17:50 shell_record1

Después de completar su tarea, puede ingresar Salida o Ctrl-d para cerrar la sesión de script y guardar el archivo.

# exit
exit
Script done, file is shell_record1

Puede ver que la secuencia de comandos indica el nombre del archivo.

2. Verifique el contenido de una sesión de terminal grabada

Cuando usa el comando de secuencia de comandos, registra todo en una sesión, como las cosas que escribe, por lo que toda su salida. Como la salida se guarda en un archivo, es posible verificar su contenido después de haber existido una sesión grabada. Simplemente puede usar un comando de editor de texto o un visor de comandos de archivo de texto.

# cat shell_record1 
Script started on Fri 09 Jun 2017 06:23:41 PM UTC
[root@centos-01 ~]# date
Fri Jun 9 18:23:46 UTC 2017
[root@centos-01 ~]# uname -a
Linux centos-01 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@centos-01 ~]# whoami
root
[root@centos-01 ~]# pwd
/root
[root@centos-01 ~]# exit
exit

Script done on Fri 09 Jun 2017 06:25:11 PM UTC

Mientras visualiza el archivo, se da cuenta de que la secuencia de comandos también almacena avances de línea y retrocesos. También indica la hora de la grabación al principio y al final del archivo.

3. Grabar varias sesiones de terminal

Puede grabar varias sesiones de terminal como desee. Cuando termine un registro, simplemente comience otro nuevo registro de sesión. Puede ser útil si desea registrar varias configuraciones que está haciendo para mostrárselas a su equipo o estudiantes, por ejemplo. Solo necesita nombrar cada archivo de grabación.

Por ejemplo, supongamos que tiene que hacer configuraciones OpenLDAP, DNS, Machma. Deberá registrar cada configuración. Para hacer esto, simplemente cree el archivo de grabación correspondiente a cada configuración cuando termine.

# script openldap_record
   ...............
    configuration step
   ..............
# exit

Cuando haya terminado con la primera configuración, comience a registrar la siguiente configuración

# script machma_record
    ............
     configuration steps
    .............
# exit

Y así sucesivamente para el otro. Tenga en cuenta que si su comando de script seguido del nombre de archivo existente, el archivo será reemplazado. Entonces lo perderás todo.

Ahora, imaginemos que ha comenzado la configuración de Machma pero tiene que abortar su configuración para finalizar la configuración de DNS debido a algún caso de emergencia. Ahora desea continuar con la configuración de machma donde lo dejó. Significa que desea registrar los siguientes pasos en el archivo existente. machma_record sin borrar su contenido anterior; para hacer esto usarás script -a comando para agregar la nueva salida al archivo.

Este es el contenido de nuestro archivo grabado

Ahora bien, si queremos continuar nuestra grabación en este archivo sin eliminar el contenido ya presente, haremos

# script -a machma_record
Script started, file is machma_record

Ahora continúe con la configuración, luego salga cuando haya terminado y verifiquemos el contenido del archivo grabado.

Tenga en cuenta la nueva hora del nuevo registro que aparece. Puede ver que el archivo tiene los registros anteriores y reales.

4. Reproducir una sesión de terminal de Linux

Hemos visto que es posible ver el contenido del archivo grabado con comandos para mostrar el contenido de un archivo de texto. El comando de secuencia de comandos también ofrece la posibilidad de ver la sesión grabada como un video. Significa que revisarás exactamente lo que has hecho paso a paso en el momento en que ingresaste los comandos como si estuvieras viendo un video. De modo que reproducirá / reproducirá la sesión de terminal grabada.

Para hacerlo, debes usar --timing opción de comando de secuencia de comandos cuando iniciará el registro.

# script --timing=file_time shell_record1
Script started, file is shell_record1

Ver que el archivo en el que grabar es shell_record1. Cuando finalice el registro, salga normalmente

# exit
exit
Script done, file is shell_record1

Veamos comprobar el contenido de file_time

# cat file_time 
0.807440 49
0.030061 1
116.131648 1
0.226914 1
0.033997 1
0.116936 1
0.104201 1
0.392766 1
0.301079 1
0.112105 2
0.363375 152

los --timing La opción envía datos de tiempo al archivo indicado. Estos datos contienen dos campos, separados por un espacio que indica cuánto tiempo transcurrió desde la salida anterior cuántos caracteres se emitieron esta vez. Esta información se puede utilizar para reproducir scripts mecanografiados con retrasos realistas de escritura y salida.

Ahora, para reproducir la sesión del terminal, usamos el comando scriptreplay en lugar del comando script con la misma sintaxis al grabar la sesión. Mira abajo

# scriptreplay --timing=file_time shell_record1

Querrás que la sesión grabada se reproduzca como si estuvieras viendo un video que grababa todo lo que estabas haciendo. Puede simplemente insertar el archivo de tiempo sin indicar todo el –timing = file_time. Mira abajo

# scriptreplay file_time shell_record1

Entonces entiende que el primer parámetro es el archivo de tiempo y el segundo es el archivo grabado.

Conclusión

El comando de secuencia de comandos puede ser su herramienta para documentar su trabajo y mostrarles a otros lo que hizo en una sesión. Puede usarse como una forma de registrar lo que está haciendo en una sesión de shell. Cuando ejecuta un script, se bifurca un nuevo shell. Lee la entrada y salida estándar para su terminal tty y almacena los datos en un archivo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar