Registro de Echo Shell al entrar y luego salir

Registro de Echo Shell al entrar y luego salir

Mientras escribo un comando, este comando se autenticará con un servidor remoto y hará muchas cosas. Si pasa, me dará un shell bash con su entorno.

Mi objetivo es guardar estos registros que se imprimen en mi terminal para futuras inspecciones. Digamos que mi comando llamó target.

Mientras escribo target, arroja el siguiente mensaje.

Version:        V1.94
Options:
Date:           Thu Jun  6 17:18:39 2019
OS:             CentOS release 6.10 (Final)
....
[DEV]target>

Observe que la última línea implica que ingresé al entorno de shell de destino.

Lo he intentado echo $(target) > output.log, pero se bloqueará hasta que escriba CTRL+C.

Entorno: CentOS 6.10

Actualizar

Digamos que quiero que este script se ejecute automáticamente cuando activo mi máquina. Sin embargo, seguirá bloqueado mientras ejecuta el comando de destino porque entró en un shell y no salió.

#!/bin/bash
script -c target output.log
FILENAMEME=output.log
aws s3 cp "$FILENAME" s3://logs/

Respuesta1

Quizás quieras probar script:

script -c target output.log

Esto iniciaría el comando targety guardaría una transcripción de toda la sesión, hasta que targetfinalice, en el archivo output.log. Si el comando (tu target) tiene varias palabras, cita el comando completo.

Consulte el manual de script( man script).

Respuesta2

Si no puede cambiar el targetcomando en sí, esto debería resultar útil:

target | tee output.bak

output.bakcontendrá una copia de toda la salida (solo salida estándar en este ejemplo), por lo que tendrás que recortarla si quieres solo la información inicial.

información relacionada