retail
é um estado tail
. Ele registra o número do inode e o tamanho do arquivo após cada chamada, a próxima chamada é escolhida de onde parou (opcionalmente, lidando com arquivos girados também, e é por isso que o inode é gravado).
while true; do
retail myfile.log
sleep 5
done
A menos que os dados do arquivo contenham timestamps (pode ser, se for via syslog) ou algum ID crescente monotônico, você deve ter algum estado externo, retail
usa o tamanho do arquivo.
Supondo que o arquivo só é anexado e liberado linha por linha, retail
não perderá dados. Ele também deve ser mais confiável do que a inspeção de registros de data e hora nos dados, a menos que tenham alta precisão (por exemplo, µs ou melhor precisão).
retail
é escrito em C e parece similar à sugestão de logtail
de Ulrich Dangel. Parece haver duas versões distintas disso, ambas implementadas em perl, nenhuma das quais eu usei: