logrotate nie obraca się w czasie określonym w crontab

1

Zastanawiam się, dlaczego logrotate nie obraca moich plików dziennika w momencie, gdy jest wywoływany przez crontab.

Mój wpis w crontab to:

50 2 * * * / usr / sbin / logrotate

Dlatego wszystkie moje dzienniki powinny zostać obrócone w nocy o 2:50. Otrzymuję pocztę o statusie z mojego serwera o nazwie logrotate o 2:50, więc wydaje się, że to działa.

Kłody są obracane poprawnie - ale nie o 2:50, są obracane o 9:30.

Przez 2h szukałem dalej, sprawdziłem logrotate.conf, moje pliki na logrotate.d, ale nie mogę znaleźć żadnej konfiguracji, która mogłaby spowodować to opóźnienie. Byłbym wdzięczny za podpowiedź na temat tego, co może powodować takie zachowanie i jak mogę je zmodyfikować (ustawienia zostały skonfigurowane przez mojego poprzednika, a on nie zostawił mi dokumentacji)

rexemTrebor
źródło

Odpowiedzi:

1

logrotate jest kontrolowany przez anacron.

Sprawdź konfigurację tej usługi w pliku etc\anacrontab. Na przykład może to być:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=10
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-4

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

Linia START_HOURS_RANGE=3-4wskazuje, że anakron będzie działał w dowolnym momencie między 3 rano a 4 rano, a linia RANDOM_DELAY=10oznacza, że ​​doda losowy czas maksymalnie 10 minut do czasu rozpoczęcia.

Musisz to zmodyfikować, aby działało w żądanym czasie.

jcbermu
źródło
Dzięki za pomysł - to mógł być powód. Ale kiedy używam Suse Linux Enterprise Server, w moim systemie nie ma Anacron ani Fcron.
rexemTrebor
0

OK, znalazłem problem: W cron.daily pojawił się kolejny wpis logrotate, którego ostatnio nie widziałem

Tak więc - przynajmniej w SLES - musisz skonfigurować CZAS DZIENNY w / etc / sysconfig / cron, który jest domyślnie pusty i dlatego powinien normalnie działać 15 minut po uruchomieniu.

Dlaczego zawsze była 9:30? Nie wiem, ale kiedy zmieniłem to, aby wymusić bieg o 4:00, faktycznie obraca moje dzienniki o 4:00.

Mam informacje tutaj: https://lists.opensuse.org/opensuse/2011-09/msg00550.html

rexemTrebor
źródło