Coda più file di registro


3

Ho un'applicazione che genera nuovi file di registro ogni volta che viene eseguita. Vanno tutti in una cartella, con nomi di file come questo, e il prossimo log non viene avviato fino a quando quello attuale non è finito.

Log-20140122102407.txt
Log-20140122102739.txt
Log-20140122103640.txt
Log-20140122162121.txt
Log-20140122163145.txt

Voglio monitorare i progressi attuali in una finestra di terminale come tail -f ma questo non funzionerà con più file. Ho sentito parlare di multitasking, ma non so come usarlo, e non voglio che la mia finestra terminale divida in più sezioni.

Risposte:


5

coda

tail può coda più file. L'articolo di Donovan Bray spiega di più, coda: può coda più file contemporaneamente, chi lo sapeva? e altri trucchi di coda.

Per accodare più file, passare un modello di file:

tail -f Log-*

multtail

Puoi chiedere multtail per combinare l'output di più file. Il pagina degli esempi contiene approcci e trucchi utili.

Questo comando combina e calcola due registri:

multitail /var/log/apache/access.log -I /var/log/apache/error.log

Se è necessario allineare i registri in una cartella, compresi quelli creati attivamente, utilizzare -q bandiera:

multitail -q 'test*'

Questo accoderà tutti i file che corrispondono al modello test*, compresi quelli che appaiono dopo che il comando è stato emesso. Grazie a @ folkert-van-heusden per questo suggerimento e correzione del codice.

Se hai homebrew installato, è possibile installare multitail utilizzando il comando Terminal.app:

brew install multitail

Guarda anche:


1
Per quanto ne so, nessuna di queste soluzioni funziona perché non riconosce i futuri file di log che vengono creati dopo l'immissione del comando.
Elliott

Non sono a conoscenza di alcuno strumento che faccia questo. Se il tuo comando include un carattere jolly *, puoi premere "Comando +". per interrompere la coda, premere su, e infine premere Invio per riprendere la registrazione con i file più recenti.
Graham Miln

elliott: hai controllato -q e -Q? forse sono utili?
Folkert van Heusden

1
normalmente multitail -Q dovrebbe funzionare in questo caso ma ho notato che è rotto. lavorando su di esso!
Folkert van Heusden

2
Ok ho risolto: -q / -Q dovrebbe ora funzionare (in multitail v6.1). Testato da: multitail -q 'test *' e poi in un'altra finestra di terminale: sleep 3; echo 1 & gt; test1; dormire 3; echo 2 & gt; test2; dormire 3; echo 3 & gt; test3; dormire 3; eccetera.
Folkert van Heusden
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.