logrotate não excluindo arquivos antigos - glob failing

2

Estou perplexo com este. Qualquer ajuda é muito apreciada ...!

Registra-se em / var / log / HOSTS / cacheflow_access_log / está configurado para arquivar em / var / log / HOSTS / arquivado / cacheflow_access_log / e compactar. Esses são arquivos muito grandes, portanto devem ser mantidos por apenas 1 dia para que o Splunk ou o Sawmill possam resumir seu conteúdo.

Os logs são girados e compactados sem problemas, mas os antigos registros compactados não são excluídos. A saída detalhada do logrotate sugere que isso é um problema com glob. Está procurando no diretório live em vez do diretório archive ? Se sim, como posso consertar isso? Se não, a WTF está acontecendo?!

Logrotate conf:

# logrotate configuration for syslog files

# global options
   rotate 1
   missingok
   daily
   compress
   ifempty
   dateformat -%Y%m%d
   dateext

---SNIP---

/var/log/HOSTS/cacheflow_access_log/* {
   daily
   # only keep 1 day of cacheflow as they're massive files
   maxage 1
   rotate 1
   olddir /var/log/HOSTS/archived/cacheflow_access_log
   postrotate
      invoke-rc.d proftpd restart 2>/dev/null >/dev/null || true
   endscript
}

Saída detalhada de logrotate:

considering log /var/log/HOSTS/cacheflow_access_log/CF_5000_20120803_092129.log
log needs rotating
rotating log /var/log/HOSTS/cacheflow_access_log/CF_5000_20120802_120326.log, log >rotateCount is 1
Converted ' -%Y%m%d' -> '-%Y%m%d'
dateext suffix '-20120803'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /var/log/HOSTS/cacheflow_access_log/CF_5000_20120802_120326.log to /var/log/HOSTS/archived/cacheflow_access_log/CF_5000_20120802_120326.log-20120803
running postrotate script

Executando o Debian Squeeze 2.6.32-5-686-bigmem

Sei que existem duplicações desnecessárias nessa configuração (por exemplo, a rotação 1 não precisa ser reiterada) - foi apenas para garantir que esse problema não estivesse causando esse problema.

Obrigado!

    
por James 03.08.2012 / 01:57

1 resposta

0

Talvez esteja falhando porque o arquivo de log já tem a data no nome e, portanto, é um novo nome a cada dia. Geralmente, vejo arquivos de log com um nome estático e logrotate adiciona uma extensão para torná-los exclusivos. O logrotate pode estar procurando arquivos antigos no diretório do arquivo com um nome CF_5000_20120802_120326.log para excluí-los. Não encontra nenhum porque o nome base de cada arquivo é único.

    
por 03.08.2012 / 02:49