girando manualmente o arquivo de log com o rsyslogd

10

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 rodar /var/log/syslog? Eu quero vazio.

kbec
fonte

Respostas:

23

Você não diz logrotatequal arquivo girar na linha de comando. Você passa um arquivo de configuração. Então, no seu caso, logrotateestá lendo /var/log/sysloge tentando analisá-lo como um arquivo de configuração e falhando (daí os seus erros).

Se você deseja girar, /var/log/syslogele precisa estar listado em um logrotatearquivo de configuração em algum lugar e você acabou de executar logrotate. Se ele girou recentemente, logrotate -fforçá-lo a fazê-lo novamente.

Aqui está um exemplo de entrada para o /var/log/syslogDebian,

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

Portanto, você precisa disso em um arquivo, normalmente /etc/logrotate.confou como um trecho de arquivo, /etc/logrotate.dassumindo seus /etc/logrotate.confpontos lá e, em seguida, basta executar logrotate /etc/logrotate.conf.

Como você está executando o Debian, isso provavelmente está tudo pronto, e tudo o que você precisa fazer é executar logrotate -f /etc/logrotate.conf(observe, isso rodará todos os logs atualmente configurados no logrotate).

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

EightBitTony
fonte