Eu acredito que você tenha 3 opções.
-
Você modifica a configuração existente adicionando "copytruncate"
/var/log/upstart/*.log { copytruncate daily missingok rotate 7 compress notifempty nocreate }
-
Se você não puder ou (não for permitido) alterar a configuração do logrotate existente devido a outros arquivos de log que não sofrem e a configuração existente funcionar para eles, mova seus arquivos "SERVICE_NAME.log" para uma nova pasta em / var / log, se desejar, crie uma nova configuração com o "copytruncate" e adicione-a ao cron.daily.
-
a) Se você não tem permissão para alterar o host os logrotate config ou adicionar ao cron.daily do sistema operacional host, então sua terceira opção é alterar os scripts ou programas para verificar se o arquivo existe antes escrevendo para o arquivo. b) Outra maneira é um pouco do ponto 2 acima, que é mover seus arquivos de log para outro lugar e dentro de seu script ou programa, executar o comando logrotate específico para o arquivo de log do programa.
O ponto 3b acima é mais complicado, mas mais elegante e é o que eu uso na maior parte do tempo, pois significa que o programa é autossuficiente e autogerenciado e não precisa dos serviços do SO para cuidar dele.
Para descobrir como executar manualmente o logrotate e adicioná-lo ao seu programa ou script, basta digitar:
man logrotate
ou
logrotate --help
Se você estiver usando o Python para seus programas, poderá verificar como esse programa o utiliza para autogerenciar seus arquivos de log. link