Em logrotate(8) :
It allows automatic rotation, compression, removal, and mailing of log files. [...] The lines between postrotate and endscript (both of which must appear on lines by themselves) are executed after the log file is rotated.
Em outras palavras: postrotate acontece após a rotação, mas antes da compactação. O arquivo gzip do seu log ainda não existe quando sua chamada mv é feita.
logrotate não fornece um postcompress hook, mas você pode:
- Use o
lastactionhook em seu lugar. - Manipule a compactação em seu
postrotatescript / code. Crie um script de shell que feche o arquivo, mova-o e chame-o na seçãopostrotate. Não se esqueça de desativar a opçãocompressnesse caso. - Faça uma coisa semelhante usando
compresscmdeuncompresscmd, usando scripts personalizados de compactação / descompactação que cuidam de localizar e mover o arquivo quando necessário. - Cuide da movimentação em um trabalho CRON independente de
logrotateou programe-a na seçãopostrotateusandoat(isso não está realmente limpo, já que você não pode realmente prever o tempo de compressão) .
Para mais informações, dê uma olhada aqui . O fluxo de trabalho de logrotate pode ser um pouco difícil de entender no começo, mas depois que você tomar as providências necessárias, tudo deve ocorrer sem problemas;) Você também pode estar interessado nas seguintes perguntas de SE: