Como posso manter mais arquivos auth.log? [duplicado]

2

Gostaria de manter mais que os 5 arquivos de log padrão em /var/log/auth.log. O que preciso alterar para manter o número x deles?

    
por aswine 13.10.2016 / 21:08

2 respostas

6

Isso é feito por logrotate , que como um trabalho diário de cron verifica seus arquivos de configuração para arquivos de log que precisam ser rotacionados, compactados, removidos e executam as ações necessárias.

Para /var/log/auth.log , que é na verdade um arquivo rsyslog gerenciado, como rsyslog despeja todas as informações de autenticação ( auth , authpriv facilities) lá (conf file: /etc/rsyslog.d/50-default.conf ), a configuração relevante arquivo para logrotate é /etc/logrotate.d/rsyslog .

No meu 14.04 que contém:

/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/debug
/var/log/messages
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                reload rsyslog >/dev/null 2>&1 || true
        endscript
}

Portanto, /var/log/auth.log está sendo rotacionado por essa configuração.

Para modificar o comportamento para manter o número desejado de arquivos girados, você pode alterar o parâmetro rotate para o valor desejado (qualquer inteiro positivo, 0 removerá os arquivos antigos instantaneamente) na seção { ... } após o declaração de nome de arquivo, mas isso mudará o comportamento de todos os arquivos mencionados, o que pode não ser o comportamento desejado.

Em vez disso, remova /var/log/auth.log de lá e faça uma entrada separada para isso colocando o seguinte no final:

/var/log/auth.log
{
        rotate 10
        weekly
        missingok
        notifempty
        compress
        delaycompress
        postrotate
                reload rsyslog >/dev/null 2>&1 || true
        endscript
}

O texto acima irá girar /var/log/auth.log , weekly , com compress -ion, não se estiver vazio ( notifempty ), e manterá 10 de cópias giradas, e as mais antigas serão removidas .

Altere-os para atender sua necessidade e leia também man 5 logrotate.conf .

    
por heemayl 13.10.2016 / 21:24
0

As programações de rotação são definidas em /etc/logrotate.d/rsyslog

Se examinarmos o arquivo, poderemos ver que auth.log é um dos arquivos configurados para uma programação semanal rotativa 4 por padrão. Observe que o syslog, por sua vez, está configurado para girar a programação diária de 7. Você pode seguir o formato do syslog e criar uma entrada que siga o mesmo formato que lhe dará os resultados desejados I.E. gire X e o horário desejado como diariamente, semanalmente ou o que for. Preste atenção na diretiva postrotate e especifique a ação que acontece após a conclusão da rotação completa do log.

/var/log/syslog
{
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        reload rsyslog >/dev/null 2>&1 || true
    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/debug
/var/log/messages
{
    rotate 4
    weekly
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        reload rsyslog >/dev/null 2>&1 || true
    endscript
}

fontes:

man logrotate

link

    
por Elder Geek 13.10.2016 / 21:34