ręcznie obracając plik dziennika za pomocą rsyslogd

10

Chcę wymusić obrót pliku dziennika logrotate -f /var/log/syslog, ale zwracają tylko tony:

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

Wiem, że w tym systemie działa rsyslogd. Jak obracać /var/log/syslog? Chcę, żeby było puste.

kbec
źródło

Odpowiedzi:

23

Nie powiesz, logrotatektóry plik ma zostać obrócony w wierszu polecenia. Przekazujesz mu plik konfiguracyjny. Więc w twoim przypadku logrotateczyta się /var/log/syslogi próbuje parsować go jako plik konfiguracyjny i kończy się niepowodzeniem (stąd błędy).

Jeśli chcesz obrócić /var/log/syslog, musi być logrotategdzieś wymieniony w pliku konfiguracyjnym i po prostu uruchom logrotate. Jeśli ostatnio się obracał, to logrotate -faby zmusić go do zrobienia tego ponownie.

Oto przykładowy wpis dla /var/log/syslogDebiana,

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

Tak więc potrzebujesz tego w pliku, zwykle albo /etc/logrotate.confjako fragment pliku /etc/logrotate.dprzy zakładaniu /etc/logrotate.confpunktów, a następnie po prostu uruchomisz logrotate /etc/logrotate.conf.

Ponieważ używasz Debiana, prawdopodobnie wszystko jest na swoim miejscu i wszystko, co musisz zrobić, to uruchomić logrotate -f /etc/logrotate.conf(uwaga, spowoduje to obrócenie każdego dziennika skonfigurowanego obecnie w logrotate).

Jeśli naprawdę chcesz tylko obracać /var/log/syslog, musisz utworzyć plik konfiguracyjny, który robi tylko ten jeden dziennik, w oparciu o zawartość /etc/logrotate.conf+ /etc/logrotate.d/rsyslog.

EightBitTony
źródło