manualmente gira o arquivo de log com o rsyslogd

8

Eu quero forçar a rotação do arquivo de log usando logrotate -f /var/log/syslog , mas são apenas tons de retorno de:

error: syslog:1 unknown option 'May' -- ignoring line
error: syslog:1 unexpected text

Eu sei que neste sistema o rsyslogd está rodando. Como girar /var/log/syslog ? Eu quero isso vazio.

    
por kbec 13.05.2012 / 00:30

1 resposta

19

Você não diz a logrotate qual arquivo deve ser rotacionado na linha de comando. Você passa um arquivo de configuração. Portanto, no seu caso, logrotate está lendo /var/log/syslog e tentando analisá-lo como um arquivo de configuração e falhando (daí seus erros).

Se você quiser girar /var/log/syslog , ele precisa estar listado em um arquivo logrotate config em algum lugar, e você acabou de executar logrotate . Se ele girou recentemente, então logrotate -f para forçá-lo a fazê-lo novamente.

Aqui está uma entrada de exemplo para /var/log/syslog do Debian,

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

Então, você precisa disso em um arquivo, normalmente /etc/logrotate.conf ou como um fragmento de arquivo em /etc/logrotate.d , assumindo seus /etc/logrotate.conf pontos lá, e depois é só executar logrotate /etc/logrotate.conf .

Como você está rodando Debian, provavelmente tudo isso está funcionando, e tudo que você precisa fazer é executar logrotate -f /etc/logrotate.conf (note que isso irá rodar todos os log atualmente configurados no logrotate).

Se você verdadeiramente deseja apenas rotacionar /var/log/syslog , será necessário criar um arquivo de configuração que faça esse log, com base no conteúdo de /etc/logrotate.conf + /etc/logrotate.d/rsyslog .

    
por 13.05.2012 / 00:48