Eu tenho a seguinte configuração para meu /etc/logrotate.d/rsyslog
arquivo. 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 configuration
que 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á.