quanto tempo o logrotate espera entre o postrotate e a compactação

quanto tempo o logrotate espera entre o postrotate e a compactação

Estou escrevendo um software e quero recarregar os arquivos de log quando o processo obtiver um SIGHUP de algo como logrotate. A questão é: quanto tempo o aplicativo pode usar antes que o logrotate comece a compactar o arquivo de log girado?

A página de manual e todas as referências que encontrei apenas afirmam que a aplicação deve recarregar os logs "imediatamente", mas não diz se isso deve ser feito em 1ms ou 1 segundo, por exemplo.

Responder1

Para estar seguro: nenhum.

Logrotate assume que assim que o comando postrotate for concluído, o arquivo de log não será mais gravado. Existem duas maneiras de lidar com "o fechamento de arquivos de log pode demorar um pouco":

  • A opção do logrotate delaycompressadia a etapa de compactação até opróximoinvocação de logrotate. Dessa forma, pode levar o tempo que for necessário para a próxima execução do logrotate (embora fazer isso seja uma péssima ideia).
  • Você pode escrever uma ferramenta de linha de comando que diga ao daemon para fechar e reabrir o arquivo de log e certificar-se de que este comando o faça.nãosaia até que o daemon confirme que todos os arquivos de log foram fechados (não é necessário esperar até que eles sejam reabertos também, embora isso não faça mal). As pessoas podem então usar esta ferramenta de linha de comando nas estrofes do logrotate postrotate.

informação relacionada