Limitar o número de arquivos disponíveis na rotação do syslog

Limitar o número de arquivos disponíveis na rotação do syslog

Eu tenho a seguinte configuração para meu /etc/logrotate.d/rsyslogarquivo. Nele, declarei explicitamente o número de dias em que ele irá girar para 4 e o tamanho do arquivo de rotação como 100k para /var/log/syslog.

O que eu quero saber é que quando o arquivo atingir 100k ele deverá girar sozinho. Ele gira até 4 vezes no total em um dia, se necessário? Se precisar girar 4 vezes porque atinge continuamente 100k, ele fará isso e armazenará apenas 4 arquivos? Talvez eu não consiga explicar completamente minha pergunta, mas o objetivo que procuro é que, quando o arquivo girado atingir 100k, ele deve girar sozinho e o número total de rotações não deve ultrapassar 4 arquivosPortanto, se forem necessárias 8 rotações em um intervalo de horas, deverão haver apenas os últimos 4 arquivos girados.I do see a daily configuration, not sure if that is complemented with the rotate configuration?

Se eu precisar definir um número máximo de arquivos compactados e a configuração da rotação diária não estiver fazendo isso, o que preciso fazer?

/var/log/syslog
{
        rotate 4
        size 100k
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
          invoke-rc.d rsyslog rotate >/dev/null
        endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/rsyslog.log
/var/log/debug
/var/log/messages
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
          invoke-rc.d rsyslog rotate >/dev/null
        endscript
}

Eu também tenho isso syslog configurationque limita o tamanho do arquivo syslog a 1 MB. Então, quando o syslog atingir 1 MB, ele deverá girar sozinho (ainda não testado)

auth,authpriv.*    -/var/log/auth.log
$outchannel mysyslog,/var/log/syslog,1048576
*.*;auth,authpriv.none  :omfile:$mysyslog

Responder1

logrotate não acionará uma rotação quando um arquivo atingir o "tamanho 100k". Ele opera por verificações agendadas.

Explicando como funcionaria a primeira seção da sua configuração. Execute uma verificação diária de /var/log/syslog, se for maior que 100k, gire-o, se houver 4 cópias, remova a mais antiga.

Você pode alterar diariamente para hora em hora no arquivo de configuração. Então, cp /etc/cron.daily/logrotate /etc/cron.hourly/logrotate se ainda não estiver lá.

informação relacionada