logrotuj według rozmiaru - czy muszę zmienić crona?

10

Moja obecna konfiguracja Logrotate wygląda następująco (przy użyciu Logrotate 3.8.7)

"/var/log/haproxy.log" {
  daily
  size 250M
  rotate 1
  create 644 root root
  missingok
  compress
  notifempty
  copytruncate
}

Działa z powodzeniem raz dziennie, ale gdy rozmiar przekracza 250 M, nie jest obracany. Czeka więc do końca dnia na obrót, niezależnie od wielkości.

Przeczytałem, że istnieje opcja maxsize i po przejściu size 250Mna maxsize 250Mnią nadal nie działa.

Czy muszę ustawić crona tak, aby uruchamiał logrotate co godzinę, czy logrotate uruchamia się automatycznie, ponieważ nasłuchuje tego rozmiaru pliku, a dzieje się coś innego?

Hommer Smith
źródło

Odpowiedzi:

7

Tak, logrotateaby to osiągnąć , musisz biegać więcej niż raz dziennie. Odpowiedzi na to znajdują się w drugim akapicie strony man logrotate(8) :

Zwykle logrotatejest uruchamiany jako codzienne zadanie cron. Nie zmodyfikuje dziennika wiele razy w ciągu jednego dnia, chyba że kryterium tego dziennika jest oparte na jego wielkości i logrotatejest uruchamiane wiele razy każdego dnia lub chyba, że użyto opcji -flub --force.

Jeśli chcesz biegać logrotateco godzinę zamiast codziennie, możesz go przenieść:

mv /etc/cron.daily/logrotate /etc/cron.hourly

Od wersji 3.8.1 istnieje maxsize. Różnica między sizei maxsizejest opisana tutaj:

maxsize rozmiar

Pliki dziennika są obrócone kiedy rosną większe niż rozmiar bajtów jeszcze przed dodatkowo określonym przedziale czasowym ( daily, weekly, monthly, lub yearly). Powiązana sizeopcja jest podobna, z tą różnicą, że wyklucza się wzajemnie z opcjami przedziału czasu i powoduje obrót plików dziennika bez względu na czas ostatniego obrotu. Gdy maxsizejest używany, uwzględniany jest zarówno rozmiar, jak i znacznik czasu pliku dziennika.

To sprawi, że oba będą odpowiednie do twojego zastosowania: sizebez żadnego odstępu i maxsizejeśli również potrzebny jest odstęp. Nie zmienia to jednak faktu, że domyślnie logrotatedziała tylko codziennie. Ten przedział jest odpowiedni dla większości, ponieważ w większości przypadków odrastanie kłody trwa dłużej niż jeden dzień 250M.

Esa Jokinen
źródło
1
Do Twojej dyspozycji jest dyrektywa maxsize, począwszy od wersji 8.1: hpux.connect.org.uk/hpux/Sysadmin/logrotate-3.8.7/…
Hommer Smith
Dzięki, że zauważyłem, że czytałem starożytną wersję instrukcji @HommerSmith! Odpowiednio poprawiłem swoją odpowiedź.
Esa Jokinen,