A veces, los administradores y desarrolladores de sistemas necesitan usar muchos comandos complejos y extensos para realizar una tarea crítica. La mayoría de los usuarios copiarán esos comandos y la salida generada por esos comandos respectivos en un archivo de texto para revisión o referencia futura. Por supuesto, la función de "historial" del shell lo ayudará a obtener la lista de comandos utilizados en el pasado, pero no ayudará a obtener el resultado generado para esos comandos.
Afortunadamente, existe una utilidad simple y que ahorra tiempo conocida como script que hace este trabajo por usted. El comando de secuencia de comandos hace su trabajo en silencio al ejecutarse en segundo plano. Esta utilidad es imprescindible cuando solo la interfaz de línea de comandos está disponible para los servidores que administra. Este artículo explora su uso con ejemplos.
Iniciando el registro de actividades de una sesión de terminal
Simplemente escriba "secuencia de comandos" en la línea de comando:
$ script
Se muestra un mensaje de inicio "Script iniciado, el archivo está mecanografiado" de la siguiente manera:
$ script Script started, file is typescript $
Ahora el comando de secuencia de comandos comienza a grabar los comandos del usuario en segundo plano hasta que un usuario ingresa "salir" o presiona Control-D para detener la grabación.
$ exit
Todo lo que se encuentra entre el comando "script" y "exit" se registra en un archivo en el directorio actual de forma predeterminada. Ejecutemos algunos comandos y veamos cómo el script almacena los comandos y el resultado correspondiente de la siguiente manera:
En la captura de pantalla anterior, el comando del script se ejecuta con los comandos “free –h” y “vmstat”. Una vez que el usuario sale de la grabación escribiendo "salir" o Ctrl+D, todos los comandos ejecutados y su respectivo resultado se registra en el archivo "mecanografiado" en el directorio de trabajo actual. ¡Tan simple pero increíble!
Registrar actividades en un archivo
Es una buena práctica almacenar la sesión de grabación de secuencias de comandos en un archivo definido por el usuario con alguna marca de tiempo para que sea útil consultarlo en un momento posterior. Para esto, el comando de script debe ejecutarse proporcionando el nombre de archivo deseado como sigue:$ script
La siguiente captura de pantalla muestra cómo se almacena la grabación en el archivo de registro proporcionado por el usuario:
Adjuntar actividades de grabación a un archivo existente
Puede ser necesario agregar el historial de grabación a un archivo de registro existente. Para esto, el comando de secuencia de comandos debe ejecutarse proporcionando el nombre del archivo con la opción "-a" que indica la operación de agregar.
$ script –a <existing_file_name>
Se pueden obtener más opciones en la página man del script.
Conclusión
No se recomienda ejecutar el comando de secuencia de comandos en shells no interactivos. El comando de secuencia de comandos almacena todo (caracteres de control como saltos de línea) en el archivo de registro. Si la variable de entorno SHELL está configurada, el script bifurca el shell. Si no se establece, se asume que el shell Bourne es el predeterminado. Si no se proporciona un nombre de archivo de registro a la secuencia de comandos, se utilizará un archivo predeterminado, mecanografiado. El comando de secuencia de comandos se queja si no se puede crear el archivo de registro proporcionado. Si el archivo de registro dado ya existe y no se usa la opción “–a”, entonces se sobrescribirá el archivo antiguo.