2015-07-01 6 views

Odpowiedz

19

Oto a blog post in French, który daje rozwiązanie.

W języku angielskim można przeczytać this bug report.

Podsumowując:

  1. Najpierw trzeba dodać opcję --verbose w skrypcie /etc/cron.daily/logrotate mieć więcej informacji następnym razem biegnie do określenia, które dziennika obrót przyczyną problemu.

    #!/bin/sh 
    
    test -x /usr/sbin/logrotate || exit 0 
    /usr/sbin/logrotate --verbose /etc/logrotate.conf` 
    
  2. Następnie trzeba dodać opcję w logrotate konfiguracji delaycompress.

+1

można uruchomić logrotate razu czy trzeba czekać na to, aby uruchomić ponownie? Jak dodać delaycompress do konfiguracji logrotate? Czy możesz dać przykład? –

+2

@LanceHolland można uruchomić ponownie za pomocą:/usr/sbin/logrotate /etc/logrotate.conf Jednak w zależności od ustawień logrotate (częstotliwość, min rozmiar, itp.), Warunki mogą nie być wystarczające, aby spowodować problem z gzipem . Myślę, że najlepiej jest dodać verbose, a następnie pozwolić mu działać zgodnie z rozkładem dnia. –

+0

'delaycompress' pomoże ci tylko w niektórych przypadkach. Zobacz moją odpowiedź. – Ztyx

0

upstart zostanie zamknięty (i ponownie) swój plik dziennika, gdy it notices that the file is deleted. Jeśli jednak spojrzysz na what gzip does, zobaczysz, że nie usuwa pliku, dopóki nie zapisze pliku wyjściowego. Oznacza to, że zawsze istnieje warunek wyścigu, w którym linie log mogą zostać utracone, gdy logi linii są wypisywane.

Można wyłączyć ostrzeżenie używając gzip --quiet, ale tak naprawdę to nie ukrywa faktu, że nadal może luźne wiersze dziennika.

Oznacza to, że delaycompress nie jest rodzajowy fix do tego. Jest to konkretna poprawka do określonego problemu.

Prawdziwym rozwiązaniem jest to prawdopodobnie kombinacja delaycompress i jest w stanie wysłać sygnał do procesu. To sprawi, że stan wyścigu zniknie w praktyce (chyba że obrócisz kilka razy na sekundę :)).

Powiązane problemy