вращающийся вручную лог-файл с помощью rsyslogd

10

Я хочу форсировать ротацию лог-файлов logrotate -f /var/log/syslog, но это только возврат тонов:

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

Я знаю, что в этой системе работает rsyslogd. Как вращать /var/log/syslog? Я хочу это пустым.

kbec
источник

Ответы:

23

Вы не говорите, logrotateкакой файл вращать в командной строке. Вы передаете ему файл конфигурации. Так что в вашем случае logrotateчитает /var/log/syslogи пытается проанализировать его как файл конфигурации и терпит неудачу (отсюда ваши ошибки).

Если вы хотите повернуть /var/log/syslogего, он должен быть где-то указан в logrotateфайле конфигурации, и вы просто запустите logrotate. Если он недавно повернулся, то logrotate -fзаставил его сделать это снова.

Вот пример записи для /var/log/syslogDebian,

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

Таким образом, вам нужно это в файле, обычно либо /etc/logrotate.confв виде фрагмента файла, чтобы /etc/logrotate.dпринять ваши /etc/logrotate.confточки, а затем просто запустить logrotate /etc/logrotate.conf.

Поскольку вы работаете с Debian, это, вероятно, все на месте, и все, что вам нужно на самом деле, это запустить logrotate -f /etc/logrotate.conf(заметьте, это будет вращать каждый журнал, настроенный в данный момент в logrotate).

Если вы действительно хотите только повернуть /var/log/syslog, вам нужно будет создать файл конфигурации, который просто делает этот журнал, основываясь на содержании /etc/logrotate.conf+ /etc/logrotate.d/rsyslog.

EightBitTony
источник