logrotate: tamanho mencionado 2000M em tamanho de logs de conexão ainda é mais do que 2000M

1

Meu /etc/logrotate.conf:

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

Meus registros serão rotacionados /etc/logrotate.d/apc_rtbinfo.conf

/mnt/log/frengo/apc_rtbinfo.log {
daily
missingok
notifempty
size 2000M
compress
delaycompress
sharedscripts
copytruncate
rotate 3
}

Saída para logrotate:

 logrotate -v /etc/logrotate.d/apc_rtbinfo.conf
reading config file /etc/logrotate.d/apc_rtbinfo.conf
reading config info for /mnt/log/frengo/apc_rtbinfo.log

Handling 1 logs

rotating pattern: /mnt/log/frengo/apc_rtbinfo.log  2097152000 bytes (3 rotations)
empty log files are not rotated, old logs are removed
considering log /mnt/log/frengo/apc_rtbinfo.log
  log does not need rotating

Meu tamanho de registros girados:

# du -sh /mnt/log/frengo/apc_rtbinfo.log*
0       /mnt/log/frengo/apc_rtbinfo.log
4.7G    /mnt/log/frengo/apc_rtbinfo.log.1
80M     /mnt/log/frengo/apc_rtbinfo.log.2
0       /mnt/log/frengo/apc_rtbinfo.log-20151222
679M    /mnt/log/frengo/apc_rtbinfo.log-20151225.gz
681M    /mnt/log/frengo/apc_rtbinfo.log-20151226.gz
691M    /mnt/log/frengo/apc_rtbinfo.log-20151227.gz
0       /mnt/log/frengo/apc_rtbinfo.log-20151228
70M     /mnt/log/frengo/apc_rtbinfo.log.2.gz
80M     /mnt/log/frengo/apc_rtbinfo.log.3
80M     /mnt/log/frengo/apc_rtbinfo.log.4

A saída de rotação de log indica que "o log não precisa ser rotacionado", mas eu mencionei "size 2000M", ou seja, o arquivo de log é rotacionado se for maior que 2000M e como "/mnt/log/frengo/apc_rtbinfo.log.1" é de 4,7 GB

    
por Ashish Karpe 28.12.2015 / 17:10

1 resposta

2

O tamanho do arquivo de log atual ( /mnt/log/frengo/apc_rtbinfo.log ) é considerado e esse tamanho é 0. Portanto, nada para girar.

Quanto ao arquivo de log mais antigo, logrotate não monitora constantemente os arquivos, mas é executado regularmente (diariamente, iirc). Se, entre as execuções, um arquivo de log ficar extraordinariamente grande, ele não descobrirá até a próxima execução.

Se o espaço for valioso, basta executar gzip no arquivo grande:

gzip /mnt/log/frengo/apc_rtbinfo.log

Ele será substituído por um arquivo compactado, muito menor.

Você usou as condições size e daily juntas. No entanto, size e as condições baseadas no tempo são mutuamente exclusivas. Você deve usar a condição maxsize :

maxsize size
      Log files are rotated when they grow bigger than size bytes even
      before the additionally specified time interval (daily,  weekly,
      monthly,  or yearly).  The related size option is similar except
      that it is mutually exclusive with the  time  interval  options,
      and  it  causes  log  files to be rotated without regard for the
      last rotation time.  When maxsize is used,  both  the  size  and
      timestamp of a log file are considered.
    
por 28.12.2015 / 17:11

Tags