A execução do logrotate
commad com -f
em um cronjob pode ser suficiente. De man logrotate
:
-f, --force
Tells logrotate to force the rotation, even if it doesn't think
this is necessary. Sometimes this is useful after adding new
entries to a logrotate config file, or if old log files have
been removed by hand, as the new files will be created, and
logging will continue correctly.
Portanto, edite /etc/crontab
e adicione:
30 */6 * * * root logrotate -f /etc/logrotate.conf
Altere o minuto para atender às suas necessidades. O */6
significa que ele deve ser executado a cada seis horas.
Isso rotacionará todos os arquivos log , portanto, isole as configurações do aplicativo para um arquivo de configuração (independente) e use-o como o parâmetro. Por exemplo, crie /etc/logrotate.d/uwsgi
, contendo:
"/var/log/uwsgi/*/*.log" {
copytruncate
daily
rotate 14
compress
delaycompress
missingok
notifempty
compresscmd /bin/bzip2
uncompresscmd /bin/bunzip2
compressext .bz2
}
junto com outras linhas em /etc/logrotate.conf
nas quais você pode estar implicitamente dependendo. Em seguida, a entrada crontab
será semelhante a:
30 */6 * * * root logrotate -f /etc/logrotate.d/uwsgi