Faça eco do log do shell ao entrar e sair

Faça eco do log do shell ao entrar e sair

Enquanto digito um comando, esse comando será autenticado em um servidor remoto e fará várias coisas. Se aprovado, isso me dará um shell bash com seu ambiente.

Meu objetivo é salvar esses registros que serão impressos em meu terminal para inspeção futura. Digamos que meu comando seja chamado target.

Enquanto digito alvo, ele lança a seguinte mensagem.

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

Observe que a última linha indica que entrei no ambiente shell de destino.

Eu tentei echo $(target) > output.log, mas ele ficará preso até eu digitar CTRL+C.

Ambiente: CentOS 6.10

Atualizar

Digamos que eu queira que esse script seja executado automaticamente quando eu ativar minha máquina. No entanto, ele ainda ficará preso ao executar o comando de destino porque entrou em um shell e não saiu.

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

Responder1

Você pode tentar script:

script -c target output.log

Isso iniciaria o comando targete salvaria uma transcrição de toda a sessão, até targeto término, no arquivo output.log. Se o comando (seu target) tiver várias palavras, cite o comando completo.

Consulte o manual para script( man script).

Responder2

Se você não conseguir alterar o targetcomando em si, isso deverá ser útil:

target | tee output.bak

output.bakconterá uma cópia de toda a saída (apenas stdout neste exemplo), então você terá que cortá-la se quiser apenas as informações iniciais.

informação relacionada