Да, в последнее время мне и вправду фортит на приключения :) К счастью, все они пока что заканчивались хорошо, то есть я успешно решал возникшие проблемы.
Темой этой заметки будут мои приключения с 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
Копируете статью — поставьте ссылку!
воскресенье, 10 мая 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
4 комментария:
Спасибо написано очень доходчиво :)
Хочу добавить от себя детальное описание процесса настройки крона
вручную и через панельку DirectAdmin http://private-seo-soft.blogspot.com/2010/04/crontab.html
«Детальное описание настройки крона» звучит как шутка — там и настраивать-то, по сути, нечего. Тем не менее, спасибо за ссылку — может, кому из новичков пригодится.
Дык anacron вроде должен быть по-умолчанию, куда же он делся? :)
rastler, как знать, как знать — дело-то давнее…
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.