Perché meno modalità coda smette di funzionare?


11

L'uso del lesscomando su linux in modalità tail (comando F o less -f) smette costantemente di funzionare su alcune macchine e / o determinati file. Le nuove modifiche smettono semplicemente di apparire.

So di averlo risolto prima, molto tempo fa, ma non ricordo quale fosse la soluzione.

Qualche idea?


Hai provato a usare strace per vedere cosa sta (non) facendo? Forse vedrai un errore.
wfaulk,

Cordiali saluti, questo rimane senza risposta perché il file in questione non era in fase di rotazione / rotazione / ricreazione.
ALBERO

Risposte:


12

Prova a usare less --follow-name. Anche se il file ha lo stesso nome, il processo (i) di aggiornamento potrebbe farlo in un modo che modifica l'inode del file, quindi dal punto di vista del sistema operativo, è un nuovo file dopo gli aggiornamenti.


+1 risposta perfetta, ecco perché è stata introdotta questa opzione. Si noti che è --follow-namestato introdotto in meno v415 ( greenwoodsoftware.com/less/news.415.html ), rilasciato il 15 novembre 2007. Pertanto la vecchia installazione di Linux potrebbe non averlo.
sleske,

3

Stai visualizzando i file di registro che vengono ruotati da logrotate? Se il file che visualizza meno viene rinominato (ad es. Da log a log.0 con logrotate), less continuerà a guardare quel file, anche se le nuove voci vengono scritte in un file diverso (con il nome originale).


In questo caso, prova tail --follow = name [nome file] (che fa riaprire periodicamente il file nel caso in cui venga rinominato). Vedi gnu.org/software/coreutils/manual/html_node/…
Randy Orrison,

No, i registri non ruotano. È lo stesso file.
ALBERO

1

forse potresti provare tail -f [filename]invece?


4
Con meno, puoi "mettere in pausa la coda" (usando Ctrl-c) per salire su una linea specifica e riprendere in seguito (usando F). Ecco perché in alcuni casi è preferito rispetto a "tail -f".
dogbane,

tail -f funziona, ma preferirei lavorare meno.
ALBERO

Vedo. Non lo sapevo.
marchio registrato

0

Lo faccio less +F --follow-name. --follow-namecontrolla semplicemente il file con lo stesso nome senza ricevere le modifiche in arrivo nel mio caso (CentOS 7).

In realtà creo un alias per questo:

Aggiungi questa riga in /etc/profile.d/alias.sh:

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

Salva e procuralo per usarlo ora. . /etc/profile.d/alias.sh

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.