cron и logrotate: ещё одно маленькое приключение

Да, в последнее время мне и вправду фортит на приключения :) К счастью, все они пока что заканчивались хорошо, то есть я успешно решал возникшие проблемы.

Темой этой заметки будут мои приключения с logrotate — он почему-то не запускался cron’ом.

В принципе, я мог бы просто сказать, что именно надо было сделать в моём случае, но у меня возникла тяга к графоманству :), поэтому я распишу, с чего всё начиналось, как продолжалось и на чём закончилось. Если же вам лень читать много и хочется только самой сути, взгляните на краткую версию :)

cron и logrotate: ещё одно маленькое приключение (графоманская версия)

…Место в корне постепенно таяло. Пусть и не очень быстро — десяток метров в день, не больше — но факт того, что оно девается чёрт знает куда, меня вовсе не радовал. По срочному вызову на место выехали утилиты du и sort. В течении получаса я добрался до каталога /var/log, который занимал 1.1 Гб (!). Даже мне, не претендующему на лавры сколь-нибудь опытного админа, было ясно, что это слишком много. Шестисотметровый syslog наводил на грустные мысли, когда я пытался представить, как это grep’ать…

Короче, стало ясно, что с логами надо что-то делать. В голове сразу же всплыло прочитанное где-то название — logrotate. «Ну что же, — подумал я, — пора познакомиться с этой утилиткой поближе».

Почитав немного ман, понял, как всё это работает: вы создаёте файды с оговоренной структурой, кладёте их в /etc/logrotate.d/, а logrotate выполняет их. В принципе, всё просто :)

Самостоятельно мне, кажется, пришлось написать только один файл — остальные были заранее подготовлены заботливыми майнтейнерами (ух, люблю Debian! :)

…На следующий день размер /var/log не уменьшился ни на байт. Но так как для большинства логов была назначена еженедельная или даже ежемесячная смена, я решил подождать.

Но и через неделю ничего не произошло. К счастью, дело клонилось к концу месяца, так что я решил подождать ещё :) и поглядеть, отработают ли сценарии в начале месяца.

Не отработали. Тут и началось приключение. Порывшись в /etc, я добрался до /etc/cron.daily, где находился весьма незамысловатый скрипт для запуска logrotate. Недолго думая, я запустил его вручную, и о чудо! — он сработал! Стало ясно, что противный крон просто не запускает этот скрипт.

Далее был ещё один день разбирательств, в конце которого после прочтения /etc/crontab и пинка от одного зарубежного знакомого был поставлен пакет anacron, вследствие чего всё заработало, как должно :)

cron и logrotate: ещё одно маленькое приключение (краткая версия)

Проблема заключалась в том, что cron не отрабатывает сценарий запуска logrotate, находящийся в /etc/cron.daily. Проблема решилась установкой пакета anacron, содержащего одноимённый бинарник, который представляет собой аналог cron’а, умеющий выполнять также задания, которые были пропущены, пока машина была выключена.

Вот так-то :) Ждите новых записок о моих приключениях! :D

Comments (migrated from Blogger)

On 2010-04-05T00:37:48.358+03:00, private-seo-soft wrote:

Спасибо написано очень доходчиво :)
Хочу добавить от себя детальное описание процесса настройки крона
вручную и через панельку DirectAdmin http://private-seo-soft.blogspot.com/2010/04/crontab.html

On 2010-04-05T13:44:53.786+03:00, Minoru wrote:

«Детальное описание настройки крона» звучит как шутка — там и настраивать-то, по сути, нечего. Тем не менее, спасибо за ссылку — может, кому из новичков пригодится.

On 2012-05-22T17:59:40.724+03:00, rastler wrote:

Дык anacron вроде должен быть по-умолчанию, куда же он делся? :)

On 2012-05-22T20:02:51.159+03:00, Minoru wrote:

rastler, как знать, как знать — дело-то давнее…

Drop me a line! (wonder where’s the comments form?)