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
lastaction
hook em seu lugar. - Manipule a compactação em seu
postrotate
script / 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çãocompress
nesse caso. - Faça uma coisa semelhante usando
compresscmd
euncompresscmd
, 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
logrotate
ou programe-a na seçãopostrotate
usandoat
(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: