Como gravar a saída de live-f1 em um arquivo

10

Eu abri o terminal e executei o live-f1 que exibe o feed ao vivo no terminal (texto) que muda a cada segundo. Apenas a tecla "Enter" pode ser usada enquanto o programa está em execução (sai desse programa). Então você não pode digitar mais nada no console.

Eu gostaria de escrever o conteúdo do terminal em um arquivo, como depois de cada segundo.

Como posso fazer isso?

Abrindo o segundo console e usando algum comando?

Não é possível fazê-lo funcionar com o comando setterm -dump.

    
por Gustav 26.03.2011 / 08:52

4 respostas

8

live-f1 redesenha a tela com novos dados usando caracteres de controle de terminal (ncurses), assim como top ou mtr . É por isso que você vê todo esse lixo ao redirecionar para um arquivo ou dispositivo não terminal.

Infelizmente, live-f1 não fornece uma opção para obter saída apropriada para salvar e, mais tarde, extrair dados para estatísticas e outros. Se você ainda quiser salvar a saída para reproduzi-la posteriormente, use script .

Isto irá gravar live-f1 e criar dois arquivos, typescript e timefile.

script -c live-f1 -t 2> timingfile

Isto irá reproduzir a saída

scriptreplay timingfile
    
por 26.03.2011 / 10:33
7

Existem algumas maneiras que uso para capturar a saída em um arquivo que pode ser útil para você.

script

Isso cria uma subcamada e coloca toda a saída nela. Então faça script , então o que você quiser, então exit para finalizar sua subshell e sua saída estará em um arquivo chamado "typescript"

tee

Você pode fazer o eco de todo o pipe para algum outro lugar. Então você pode tee de sua saída padrão em um arquivo:

$ mycommand | tee myoutput

Se você precisar capturar o erro padrão, redirecione-o:

$ mycommand 2>&1 | tee myoutput
    
por 23.07.2011 / 15:50
6

Que tal executar o programa assim:

program > /path/to/file

Isso redireciona a saída de program para /path/to/file instantaneamente.

E se você quiser ter a saída em seu terminal, além de salvá-la em um arquivo. Confira Existe uma maneira no bash de redirecionar a saída e ainda fazer com que ela seja stdout?

    
por 26.03.2011 / 08:57
3

Você pode usar a tela GNU , junto com sua funcionalidade de registro . Note também que o O comando logfile flush secs permite controlar com que frequência a saída é liberada para o disco. Do Manual do Usuário da Tela:

— Command: logfile flush secs

Defines the name the log files will get. The default is ‘screenlog.%n’. The second form changes the number of seconds screen will wait before flushing the logfile buffer to the file-system. The default value is 10 seconds.

    
por 26.03.2011 / 09:58

Tags