Por que o modo menos cauda deixa de funcionar?

11

O uso do lesscomando linux no modo tail (comando F ou menos -f) para de funcionar de maneira consistente em determinadas máquinas e / ou em certos arquivos. Novas mudanças simplesmente param de aparecer.

Sei que já corrigi isso antes, há muito tempo, mas não me lembro qual era a solução.

Alguma ideia?

ÁRVORE
fonte
Você já tentou usar strace para ver o que (não) está fazendo? Talvez você veja um erro.
Wfaulk # 8/09
Para sua informação, isso permanece sem resposta porque o arquivo em questão não estava sendo rolado / girado / recriado.
ÁRVORE

Respostas:

12

Tente usar less --follow-name. Mesmo que o arquivo tenha o mesmo nome, o (s) processo (s) de atualização pode estar fazendo isso de uma maneira que altera o inode do arquivo - portanto, do ponto de vista do SO, é um novo arquivo após as atualizações.

Doug Harris
fonte
+1 resposta perfeita, é por isso que esta opção foi introduzida. Observe que --follow-namefoi introduzido na versão v415 ( greenwoodsoftware.com/less/news.415.html ), lançada em 15 de novembro de 2007. Portanto, a instalação antiga do Linux pode não a ter.
precisa saber é o seguinte
3

Você está visualizando arquivos de log que são rotacionados por logrotate? Se o arquivo que menos está visualizando for renomeado (por exemplo, de log para log.0 por logrotate), menos continuará a assistir esse arquivo, mesmo que novas entradas estejam sendo gravadas em um arquivo diferente (com o nome original).

Randy Orrison
fonte
Se for esse o caso, tente tail --follow = name [nome do arquivo] (que faz com que a tail reabra periodicamente o arquivo, caso seja renomeado). Veja gnu.org/software/coreutils/manual/html_node/…
Randy Orrison
Não, os logs não estão girando. É o mesmo arquivo.
TREE
1

talvez você possa tentar tail -f [filename]?

brandstaetter
fonte
4
Com menos, você pode "pausar sua cauda" (usando Ctrl-c) para ir até uma linha específica e retomar mais tarde (usando F). É por isso que, em alguns casos, é preferível a "tail -f".
8289 dogbane
tail -f funciona, mas eu prefiro trabalhar com menos.
TREE
Entendo. Não sabia isso.
Brandstaetter
0

Eu faço less +F --follow-name. --follow-nameapenas monitora o arquivo com o mesmo nome sem receber as alterações recebidas no meu caso (CentOS 7).

Na verdade, eu crio um alias para isso:

Adicione esta linha em /etc/profile.d/alias.sh:

alias lf="less +F --follow-name"

Salve e obtenha a fonte para usá-lo agora. . /etc/profile.d/alias.sh

WesternGun
fonte