Existe uma maneira fácil de registrar todas as atividades que ocorrem de um script de shell para um arquivo?
Eu tenho um roteiro. Ele gera coisas como "instruções" de eco, assim como outras saídas do programa. Eu conheço os comandos:
command | tee -a "$log_file"
e
command >> logifle.log
O que estou perguntando é se existe um parâmetro de shell para o log ou um comando set que eu possa usar ou algo assim. Não quero necessariamente adicionar dezenas de redirecionamentos ou tee aos arquivos, se não for necessário. Ainda quero obter a saída std - só quero que ela seja registrada.: Wq
Respostas:
se você normalmente executa seu script
foo.sh
, tente executá-lo (assumindo que seja um script bash) combash -x foo.sh
. Se você deseja que tudo seja redirecionado para o arquivo, tentebash -x foo.sh > file.log 2>&1
(note que eu também estou redirecionando o stderr, remova o arquivo2>&1
se você não quiser). Se você também quiser ver o que está acontecendobash -x foo.sh 2>&1 | tee log.file
,.fonte
Existe uma maneira muito fácil e prática:
Usando
script
para criar texto datilografado da sessão do terminalInicie o comando
script
Se o argumento
file
for dado, por exemploscript ~/tmp/output
,script
salva o diálogo neste arquivo. Se nenhum nome de arquivo for fornecido, o diálogo será salvo no arquivotypescript
Inicie seu script ou o que você quiser começar
Se seu script terminar, pare
script
por Ctrl-DVerifique a saída no arquivo de saída padrão
typescript
Para iniciar seu comando em uma etapa
script
, use o parâmetro-c
O uso de
script
dentro do seu script não faz sentido porquescript
bifurca o shell ou inicia um novo shell.fonte
script logfilename
, então pego.script
também é útil um monitoramento via fifo. Fromman script
: "-f, --flush
Liberar a saída após cada gravação. Isso é bom para a telecooperação: uma pessoa fazmkfifo foo; script -f foo
e outra pode supervisionar em tempo real o que está sendo feito usandocat foo
". Também pode ser usado para monitorar quando um programa está aguardando entrada ou concluído, por exemplo, monitorando o registro de data e hora do fifo.