Estamos usando o tail para monitorar continuamente vários logs, mas quando um log é girado, o tail para esse arquivo cessará.
Pelo que entendi, o problema é que, quando o log é girado, há um novo arquivo criado e o processo de execução em execução não sabe nada sobre esse novo identificador de arquivo.
Da cauda do homem :
Portanto, neste caso, usar a
-F
opção estaria correta.fonte
A resposta exata depende do seu sistema operacional - mas, em muitos casos,
tail -F
fará a coisa certa.fonte
tail -F ou tail --follow = name
fonte
IMHO, é um pouco estranho alterar seu arquivo de log por SIZE, e não por data. A maioria dos logs do sistema (em unix ou linux) gira semanalmente ou mensalmente, e não com base no tamanho ... Isso é algo que eu gosto por várias razões, e também algo que, se implementado, resolveria o seu problema.Oito anos depois, eu não sei do que diabos eu estava falando aqui: existem vários lugares onde você deseja girar por tamanho, porque as rotações diárias / semanais / mensais podem gerar arquivos MASSIVOS, o que pode causar problemas sérios.
De uma perspectiva mais experiente, a verdadeira questão é por que você deseja sentar e seguir continuamente um arquivo que está crescendo tão rápido que você o está girando mais do que diariamente ... Seria como assistir o Matrix passar.
Hoje em dia, seria melhor procurar uma agregação de log de big data como Splunk ou Sumologic, onde ele pode filtrar eventos de log em classes e disparar com base em valores específicos de log ... Não há necessidade de assistir a logs ao vivo.
fonte
Eu uso o comando no meu servidor de produção:
fonte
Além disso, pode ser um pouco pesado demais para seus objetivos, mas o splunk tem um recurso de cauda para fazer exatamente o que você deseja. É gratuito por até 500 MB / dia, mas se seus dados estiverem além desse tamanho, não valerá o custo.
fonte