O padrão no seu logrotate
nunca corresponderá a nenhum dos arquivos nomeados com o timestamp. Você precisa alterá-lo para corresponder.
Tente isto:
/var/log/hive/*.log* {
maxage 30
}
Veja outros exemplos
Veja como os outros arquivos de configuração logrotate
funcionam:
$ grep 'var/log' /etc/logrotate.d/* | head
/etc/logrotate.d/aide:/var/log/aide/*.log {
/etc/logrotate.d/bootlog:/var/log/boot.log
/etc/logrotate.d/chrony:/var/log/chrony/*.log {
/etc/logrotate.d/cups:/var/log/cups/*_log {
/etc/logrotate.d/glusterfs:/var/log/glusterfs/*.log {
/etc/logrotate.d/glusterfs:/var/log/glusterfs/bricks/*.log {
/etc/logrotate.d/glusterfs:/var/log/glusterfs/samples/*.samp {
/etc/logrotate.d/iscsiuiolog:/var/log/iscsiuio.log {
/etc/logrotate.d/libvirtd:/var/log/libvirt/libvirtd.log {
/etc/logrotate.d/libvirtd.qemu:/var/log/libvirt/qemu/*.log {
postrotate
A outra parte sobre isso que me incomoda é que você está tentando usar logrotate
para rotacionar alguns arquivos de log de outros servidores, o que já tem um tipo de arquivo log4j girando. Isso é tipicamente uma receita para o desastre.
Por exemplo, você está lidando com o Hive, que faz parte do Hadoop. Todos os serviços do Hadoop têm seus próprios arquivos log4j.properties
como este:
$ grep Back /etc/hadoop/conf/log4j.properties
#log4j.appender.DRFA.MaxBackupIndex=30
log4j.appender.RFAS.MaxBackupIndex=${hadoop.security.log.maxbackupindex}
log4j.appender.NNMETRICSRFA.MaxBackupIndex=1
log4j.appender.RFA.MaxBackupIndex=10
log4j.appender.RMSUMMARY.MaxBackupIndex=20
Nesses casos, eu recorro a fazer a "limpeza" assim:
/var/log/hive/* {
ifempty
size 0
postrotate
/usr/bin/find /var/log/hive -name "*log*" -type f -mtime +29 -exec rm -f {} \;
endscript
}
Fazer isso dessa maneira permite o uso do comando find
na regra de dias que você deseja usar.
Teste
Para verificar isso, usei as seguintes técnicas.
dados de amostra$ for i in {01..31};do touch -t 07${i}1200 /var/log/hive/file${i}.log;done
teste executado
$ logrotate -v /etc/logrotate.d/hive |& tail -10
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/hive/file31.log.1 to /var/log/hive/file31.log.2 (rotatecount 1, logstart 1, i 1),
old log /var/log/hive/file31.log.1 does not exist
renaming /var/log/hive/file31.log.0 to /var/log/hive/file31.log.1 (rotatecount 1, logstart 1, i 0),
old log /var/log/hive/file31.log.0 does not exist
log /var/log/hive/file31.log.2 doesn't exist -- won't try to dispose of it
renaming /var/log/hive/file31.log to /var/log/hive/file31.log.1
disposeName will be /var/log/hive/file31.log.1
running postrotate script
removing old log /var/log/hive/file31.log.1
OBSERVAÇÃO: é seguro remover este ifempty
& este size 0
, adicionei estes apenas para trabalhar com os meus dados falsos.