A 'tail -f' é mais eficiente que 'less + F'?

30

Este artigo apontou alguns motivos para usar less +F over tail -f . A maioria das razões são sobre os recursos , e não sobre razões técnico : less +F pode destacar, pesquisar, navegar pelo arquivo.

Como sobre as razões técnicas ?

AFAIK, less usa a pesquisa a cada segundo para atualizar o arquivo, enquanto tail , como POSIX definido usa um loop que dorme por 1 segundo e copia todos os bytes que estão disponíveis. Isso é suficiente, mas o POSIX também incentivou a implementação a usar um método mais eficiente. Pelo menos GNU tail use inotify , então é mais eficiente.

less também mantém o conteúdo do arquivo na memória, portanto, com um arquivo grande, como alguns gigabytes, ele pode tornar o computador mais lento.

Existem outras razões técnicas para usar tail -f over less +F ?

    
por cuonglm 31.03.2015 / 18:25

1 resposta

33

Acho que você abordou o ponto principal: less +F lê o arquivo inteiro, enquanto em muitos sistemas tail -f apenas lê o final do arquivo, e até mesmo nos sistemas em que lê todo o arquivo, em pelo menos não mantém todo o arquivo na memória. Isso torna less +F impraticável para arquivos muito grandes. No entanto, você pode executar less -n +F , o que faz com que less leia somente o final do arquivo, ao custo de não exibir números de linha.

De modo geral, entre less -n +F e tail -f , a principal diferença é que tail usa um serviço de notificação de alteração de arquivo em algumas plataformas (por exemplo, inotify no Linux), o que permite exibir novos dados instantaneamente, Considerando que less pode levar até 1 segundo para exibir os novos dados, pois verifica novos dados em um loop e dorme entre as verificações.

Outra diferença entre less +F e tail -f é que less invocará seu filtro de entrada, mas isso geralmente não terá impacto nos arquivos de log.

Uma diferença técnica em favor de less +F é que você pode torná-lo truncar linhas na largura da tela com a opção -S , enquanto tail não oferece outra opção a não ser exibir a linha inteira, não importa o quão muito tempo é.

Em termos de interface, não há muita vantagem em usar less . tail -f é útil para perceber quando algo acontece. Você pode até executá-lo em segundo plano. Se algo acontecer e você quiser olhar o arquivo com mais detalhes, você pode abri-lo em less em outro terminal.

Se você quiser assistir a vários arquivos, o multitail é o caminho certo. Mesmo para um único arquivo, o multitail tem recursos interessantes adicionais, como filtragem e colorização.

    
por 01.04.2015 / 02:44

Tags