LINUX.ORG.RU

Сдвинуть время ротации логов nginx & apache

 , ,


0

1

Приветствую.

На сервере запущена ротация логов (logrotate >>> nginx & apache).

Но логи ротируются в 3 ночи с хвостиком по МСК.

date на сервере показывает корректное время. В настройках apache и nginx временные настройки отсутствуют.

Подскажите, пожалуйста, где править временной сдвиг, чтобы логи ротировались в 00:01, т.к. эти выпавшие 3 часа из логов текущего дня важны для анализа.

Если нужно, могу приложить конфиги, которые надо проанализировать.

Ответ на: комментарий от slowpony

Так нету под рутом в crontab ничего. Или я не там смотрю? Также смотрел список «Log File Rotation»/«Расписание заданий cron» в панели webmin, папки /etc/cron.* - нету там ничего похожего.

16:35:55 root@xx jobs:0 cmd:1005 # crontab -l 0 * * * * /etc/webmin/bandwidth/rotate.pl

16:36:00 root@xx jobs:0 cmd:1006 # date Пн сен 12 16:36:10 MSK 2016

16:36:48 root@xx jobs:0 cmd:1008 # cat /etc/webmin/bandwidth/rotate.pl #!/usr/bin/perl open(CONF, «/etc/webmin/miniserv.conf») || die «Failed to open /etc/webmin/miniserv.conf : $!»; while(<CONF>) { $root = $1 if (/^root=(.*)/); } close(CONF); $root || die «No root= line found in /etc/webmin/miniserv.conf»; $ENV{'PERLLIB'} = «$root»; $ENV{'WEBMIN_CONFIG'} = «/etc/webmin»; $ENV{'WEBMIN_VAR'} = «/var/webmin»; chdir(«$root/bandwidth»); exec(«$root/bandwidth/rotate.pl», @ARGV) || die «Failed to run $root/bandwidth/rotate.pl : $!»;

Jalart ()
Ответ на: комментарий от Jalart

Ок, а почему под рутом? Смотри везде
/var/spool/cron
/etc/cron.d

Или где там это в твоей системе принято хранить.

slowpony ★★★ ()

logrotate лежит в /etc/cron.daily/, который выполняется в 3 часа с хвостиком каждый день. Если нужно сдвинуть - удали (а лучше просто обнули) файл тут и положи либо в /etc/cron.d, либо напиши в crontab.

pod ★★ ()
Ответ на: комментарий от slowpony

logrotate лялихе вызывается IIRC из daily. А последний там из покон веков через Ж настроен. Точнее, при инсталляции там всегда случайное время под это дело выставляется.

beastie ★★★★★ ()
Ответ на: комментарий от beastie

В общем, вопрос решил так (CentOS 7):

# cp /etc/cron.daily/logrotate /etc/cron.d/logrotate # cp /etc/cron.daily/logrotate /dev/null

# chmod +x /etc/cron.d/logrotate # crontab -e 0 0 * * * /etc/cron.d/logrotate

Ну и посмотрел сами логи и убедился в корректности ротации.

Что касается кривизны времени запуска logrotate, то, насколько я выяснил, причина в файле /etc/anacrontab в строках START_HOURS_RANGE=3-22 Т.е., запуск задач со сдвигом от 3 до 22 часов.

Jalart ()
Ответ на: комментарий от dhameoelin

Логи ротируются, предыдущий лог архивируется. Не уверен, что grep сможет вытащить всю необходимую информацию как из текстового файла, так и из архивированного файла. Тем более, что мне удобнее грепать лог за сутки, за каждый день отдельно.

Jalart ()
Ответ на: комментарий от Jalart

Логи ротируются, предыдущий лог архивируется

Вчерашний - нет. Который <logname>.1

Не уверен, что grep сможет вытащить всю необходимую информацию как из текстового файла, так и из архивированного файла.

Ну zgrep, емнип, умеет и сжатые и несжатые файлы.

Тем более, что мне удобнее грепать лог за сутки, за каждый день отдельно.

Клади логи в БД и не надо будет париться с грепом.

dhameoelin ★★★★★ ()
Последнее исправление: dhameoelin (всего исправлений: 1)
Ответ на: комментарий от dhameoelin

А можете подсказать, как их в БД класть? На php парсер в MySQL писать или есть уже какие-то решения?

Jalart ()
Ответ на: комментарий от Jalart

Какой в этом смысл:

cp /etc/cron.daily/logrotate /dev/null

anacrontab это не кривизна, это в первую очередь для десктопа, который может быть всегда выключенным в 4 часа утра (как было раньше, при ротации через crontab), а логи ротировать надо. Уже лет 5 как перешли на запуск logrotate и пр. через anacrontab.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.