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 target
e salvaria uma transcrição de toda a sessão, até target
o 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 target
comando em si, isso deverá ser útil:
target | tee output.bak
output.bak
conterá 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.