Manuelles Drehen der Protokolldatei mit rsyslogd

10

Ich möchte die Rotation von Protokolldateien mit erzwingen logrotate -f /var/log/syslog, aber es werden nur folgende Töne zurückgegeben:

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

Ich weiß, dass auf diesem System rsyslogd ausgeführt wird. Wie drehen /var/log/syslog? Ich will es leer haben.

kbec
quelle

Antworten:

23

Sie wissen nicht, logrotatewelche Datei in der Befehlszeile gedreht werden soll. Sie übergeben ihm eine Konfigurationsdatei. In Ihrem Fall wird logrotatealso gelesen /var/log/syslogund versucht, es als Konfigurationsdatei zu analysieren, und es schlägt fehl (daher Ihre Fehler).

Wenn Sie drehen möchten, muss /var/log/sysloges logrotateirgendwo in einer Konfigurationsdatei aufgeführt sein , und Sie müssen es einfach ausführen logrotate. Wenn es sich kürzlich gedreht hat, logrotate -fum es zu zwingen, es erneut zu tun.

Hier ist ein Beispieleintrag für /var/log/syslogvon Debian:

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

Sie benötigen das also in einer Datei, normalerweise entweder /etc/logrotate.confoder als Dateischnipet /etc/logrotate.d, um Ihre /etc/logrotate.confPunkte dort anzunehmen , und dann führen Sie es einfach aus logrotate /etc/logrotate.conf.

Da Sie Debian ausführen, ist dies wahrscheinlich alles vorhanden, und alles, was Sie tatsächlich tun müssen, ist auszuführen logrotate -f /etc/logrotate.conf(beachten Sie, dass dadurch jedes derzeit in logrotate konfigurierte Protokoll gedreht wird).

Wenn Sie wirklich nur drehen möchten /var/log/syslog, müssen Sie eine Konfigurationsdatei erstellen, die nur dieses eine Protokoll basierend auf dem Inhalt von /etc/logrotate.conf+ erstellt /etc/logrotate.d/rsyslog.

EightBitTony
quelle