Lê tudo o que foi echo'd e 'errored' para a janela do terminal?

1

Eu herdei um script de shell complexo em execução no OSX que é executado em um crontab. Dentro do script eu gostaria de ler periodicamente tudo na janela do terminal e escrevê-lo em outro arquivo ... como um arquivo de log que eu possa revisar depois.

Estou tentando capturar coisas que foram ECO no script, bem como quaisquer mensagens de erro exibidas no terminal. (isto é, /Users/topher/program.sh: linha 58: Permissão negada)

Isso é possível? Qual comando pode ler a partir do terminal ou saída do programa?

Obrigado! topher

    
por Topher 13.10.2010 / 21:31

3 respostas

0

Se o comando executado a partir do cron for o seguinte, toda a saída gerada será gravada no arquivo logfile.log

/Users/topher/program.sh > logfile.log

O comando acima irá esvaziar o arquivo logfile.log e preenchê-lo com a saída gerada pelo script program.sh . O comando abaixo irá anexar a saída.

/Users/topher/program.sh >> logfile.log
    
por 13.10.2010 / 21:35
0

Use tee para gerar saída para a tela e um arquivo.

./some/thing | tee thing.log

Você pode querer redirecionar stderr para stdout para despejar os dois no arquivo de log.

    ./some/thing 2>&1 | tee thing.log
    
por 13.10.2010 / 21:36
0

Eu não sei sobre o aplicativo de terminal do OS X, mas alguns terminais, como xterm , podem ser iniciados com uma opção que registra tudo que aparece no visor em um arquivo. Outra possibilidade é executar o programa script , que captura todos os caracteres para e do terminal para um arquivo.

    
por 13.10.2010 / 21:40