Rotação de log no Linux

1

Sempre que executo o comando ls no diretório /var/log , posso encontrar arquivos de log, por exemplo, messages e suas versões rotacionadas, por ex. messages.1.gz .

Embora eu não esteja usando nenhum utilitário como logrotate , como esses arquivos estão sendo girados automaticamente? Qual é o critério (por exemplo, o arquivo de log deve atingir 'X' MB ou é rotacionado a cada 'N' dias) para o arquivo ser rotacionado? E como posso controlar (ativar / desativar) a rotação de logs?

Nota: escrevi um script bash, que seria executado no primeiro dia de cada mês. Esse script comprimiria o arquivo de log, copiaria o arquivo compactado para um servidor remoto e esvaziaria o arquivo de log original (para que os logs mais recentes fiquem disponíveis na próxima execução). Então, eu não quero que o arquivo de log seja rotacionado.

    
por Mandar Shinde 04.11.2014 / 05:02

1 resposta

3

Verifique se há algum arquivo aqui: /etc/logrotate.d

Nesse caso, remova o que estiver relacionado ao que você não deseja girar. Mas tenha cuidado com o que você está removendo, certifique-se de ter um método de limpeza de arquivos para todos os arquivos que são rotacionados com logrotate, caso contrário você corre o risco de acordar um dia e não entender como seu sistema de arquivos ficou sem espaço.

Atualizar

Vários arquivos podem ser especificados em um único arquivo no diretório logrotate.d , um exemplo é o arquivo syslog . Isso também acontece quando o messages log que você mencionou seria segmentado.

/etc/logrotate.d/syslog

/var/log/messages 
/var/log/secure 
/var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    sharedscripts
    postrotate
        /bin/kill -HUP 'cat /var/run/syslogd.pid 2> /dev/null' 2> /dev/null || true
        /bin/kill -HUP 'cat /var/run/rsyslogd.pid 2> /dev/null' 2> /dev/null || true
    endscript
}

Atualização nº 2

Execute este comando para ver se o que está girando seus arquivos de log é syslog em vez de logrotate:

grep -rni "message" /etc/cron.*/*

Em sistemas com sabor do Debian, a rotação do syslog pode ser controlada por um script diário do cron que normalmente está localizado em /etc/cron.daily/sysklogd . Meu comando grep deve ajudar a identificar se isso é verdade no seu caso (mesmo que você esteja no RHEL).

Mais informações podem ser encontradas aqui: link

Verifique também: grep -rni "message" /etc/rsyslog.d/*

    
por 04.11.2014 / 05:37