C'è un modo per creare file speciali sotto Linux che manterrebbero solo, diciamo le ultime 100 righe scritte? Ho un processo di compilazione di un file di registro, e mi piacerebbe analizzare regolarmente le sue 100 ultime righe.
So che potrei usare qualche tipo di logrotate, ma c'è un modo per creare un file speciale che si riempirà fino a raggiungere 100 righe, quindi, aggiungere una riga rimuove quella più vecchia, in modo che il file mantenga solo 100 linee? (una sorta di FIFO line-based)
molte grazie
cat
per ottenere contenuti derivati (come un buffer circolare), questi non sono molto popolari. Sono chiamati file system log-strutturati. Sarebbe perfetto per quello scenario. en.wikipedia.org/wiki/Log-structured_file_system . Per ora, ti suggerisco di scrivere solo uno script che faccia una coda -n 100 a se stesso.
tail
, ma sono felice di aver imparato qualcosa :)
tail
fa così, così puoi scrivere un cron job per riempire il file su qualunque intervallo di refresh tu voglia. basta sovrascrivere contail <file> > <targetfile>
. se la frequenza di aggiornamento è sufficientemente alta, si comporta come un buffer FIFO.