“tail -f” no Terminal GNOME - rolando para quebras de linhas anteriores, se houver muita saída subseqüente

1

Estou vendo um arquivo de log com "tail -f" usando o GNOME Terminal. O log tem muita entrada constantemente, e o que eu acho que acontece é que eu rodo até uma seção anterior, e eu estou lendo, e então a tela fica preta, ou é substituída por texto que está mais abaixo o arquivo.

Eu não sei se esse é o problema, mas é como se o tail pudesse conter tantas linhas na memória, e quando um certo número chegasse depois das que eu estava lendo, ele apagaria as que eu sou leitura.

O número de linhas subseqüentes que precisam aparecer para que isso aconteça também não é enorme - cerca de 600 linhas (~ 55.000 bytes) em um experimento que acabei de fazer. Eu gostaria de aumentar isso para cerca de 20.000 linhas (ou 1.000.000 bytes, digamos, se contados em bytes). Alguém pode me dizer como fazer isso? obrigado

PS - alguém lendo isso pode ficar tentado a dizer "não é para isso que serve tail -f , é apenas para ler o final dos arquivos". Eu gosto de ter o melhor dos dois mundos - apertar "Enter" para chegar ao final do arquivo e ver o que está acontecendo agora, mas também para poder rolar para cima e ver o que aconteceu anteriormente.

    
por Max Williams 13.04.2015 / 11:19

1 resposta

1

A configuração de rolagem do GNOME-Terminal está sob Editar- > Preferências- > Perfis- > Editar- > Rolagem. O valor padrão parece ser de 8.192 linhas na minha instalação, mas você pode configurá-lo para o que deseja ou desabilitar totalmente o limite.

Você também pode usar um pager como less para o mesmo propósito:

tail -f file | less

Observe que armazenar um histórico ilimitado na memória pode acabar levando uma grande quantidade de memória em tarefas de longa duração. Usar um pager permitirá que grande parte do buffer seja apagado quando você sair do pager, enquanto no terminal ele dura tanto quanto a sua sessão de terminal.

Você pode encontrar esta resposta anterior sobre buffers de rolagem úteis para entender o que está acontecendo.

    
por 13.04.2015 / 11:36