Seu problema ocorre porque o aplicativo ainda tem o descritor de arquivos aberto depois que você o moveu no sistema de arquivos. A menos que você possa dizer ao programa para reiniciar o registro diretamente após a mudança (geralmente para deamons, existe um sinal para ele como SIGHUP
), você terá que usar outro método para rotação do que mover arquivos para os quais estão gravados naquele momento
Sugiro usar logrotate
da seguinte forma. Não testei, pois você não compartilhou o aplicativo envolvido.
Crie seu próprio arquivo de configuração de logrotate, por exemplo abclogrotate.conf
:
/var/log/abc.log {
# don't use time based rotation, but size-based
size 10k
# don't move, but copy-and-truncate so the application won't have to be
# told that the file has moved.
copytruncate
# maximum of one old file
rotate 1
# counting old files starts at 1 rather than 0
start 1
# don't use compression
nocompress
}
Agora chame logrotate assim: logrotate /path/to/abclogrotate.conf
em vez de seu próprio script.