LINUX.ORG.RU
ФорумAdmin

Cron не стартует logrotate

 , , , ,


0

1

Всем привет. Появилась необходимость, создать ротацию лог файла, так как уж больно аудит забивает логи. конфиг /etc/logrotate.d/parsec выглядит следующим образом:

/var/log/parsec/kernel.mlog { 
	daily
	missingok
	rotate 6
	size 2k
	nocompress		
	notifyempty
	prerotate
	/etc/init.d/parlogd restart > /dev/null
	endscript
}
Сам скрипт logrotate находится в папке /etc/cron.daily , но cron отказывается его стартовать. Если же запускать в ручную, командой
run-parts -v /etc/cron.daily
То ротация, лог файла происходит, создается файл kernel.mlog1. А файл kernel.mlog остается пустым 0б. Подскажите, кто сталкивался?

Что-то у вас много нестыковок. Сейчас скрипты из /etc/cron.daily запускаются anacron'ом. Потом если файл большого размера и вы ограничиваете его размер, то тогда нужно запускать не раз в день, а чаще. И обычно пишущему процессу посылают сигнал, а не restart, и в любом случае, после ротации файла, а не до (то есть postrotate).

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

Извиняюсь, напутал с конфигом. На деле он следующего вида.

/var/log/parsec/kernel.mlog { 
	daily
	missingok
	rotate 6
	size 2k
	nocompress		
	notifempty
	postrotate
	/etc/init.d/parlogd restart > /dev/null
	endscript
}
т.е нужно оставлять либо daily если хочу ежедневно, либо по размеру файла? И вопрос как запускается anacron? в планировщике идет следующая строка:
25 6 * * * test-x /usr/sbin/anacron || (cd / && run-parts --report /etc/cron.daily
но тем не менее ротация не происходит в указанное время

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

Не совсем. Просто проверка размера файла происходит только в момент вызова logrotate. Если запускать logrotate раз в сутки, то указание размера смысла не имеет, будет срабатывать ″daily″.

Если данных в лог пишется много и хочется как-то ограничить размер, то нужно вызывать logrotate чаще. Хотя 2к это совсем мало — один экран текста.

Прочитайте что-нибудь про команды sh (bash). Эта строка проверяет наличие исполняемого файла anacron и если он есть ничего не делает. То есть, если anacron есть, то он запускает задачи из /etc/cron.daily, при условии, что не редактировался дефолтный конфиг в /etc/anacrontab и не удалялся файл /etc/cron.hourly/0anacron.

И anacron не запускает задание прямо в 6:25, он запускает у указанный в конфиге промежуток времени.

Можете поместить скрипт logrotate в /etc/cron.hourly или отредактировать /etc/crontab, чтобы logrotate запускался раз в час.

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

Допустим в конфиге ротации у меня указан параметр daily. Если перенести его в cron.hourly, то будет ли происходить ротация каждый час, если указан параметр daily?

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

Нет, часовой ротации не будет. Будет ротация по размеру файла (если он указан).

mky ★★★★★ ()

Logrotate parsec

Rayman привет, получилось ли решить данную проблему, столкнулся с такой же темой, на астре 1.5 parsec сыпит лог как бешенный, а logrotate ну никак не хочет ротировать.

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