Назад | Перейти на главную страницу

Почему бы Anacron не работал?

У меня есть система Ubuntu, в которой установлен анакрон. Однако я почти уверен, что он не работает. Он не запускает команды в /etc/cron.daily для ротации файлов системного журнала (я использую sysklog, у которого есть собственный метод ротации журнала, а не logrotate). Последний раз ротация журналов проводилась в октябре 2009 года. /var/spool/anacron/cron.daily существует и содержимое 20091015. AFAIR у нас тогда отключили электричество, и все перезагрузилось.

Как я могу отладить анакрон? Как я могу понять, почему он не работает? Мой первый инстинкт - искать /var/log/anacron, но этого там нет. Как исправить, чтобы он снова запустился?

Попробуйте запустить:

sudo run-parts --test /etc/cron.daily

Эта строка сообщит, входит ли ваш новый сценарий в число «распознанных». Например, могло случиться так, что сценарий имеет неправильное имя, отсутствует флаг exec или проблемы с разрешением и т. Д.

Так я узнал, что запчастей инструмент (используемый cron) не любит .sh суффикс

Посмотрите на следующее:

zgrep anacron /var/log/cron.log.{9..1}* /var/log/cron.log | less

Последняя запись в одной системе для меня - 4 ноября 2008 года.

zgrep anacron /var/log/syslog.{9..1}* /var/log/syslog | less

Для меня записи варьируются с 28 декабря по 4 января.

cat /etc/crontab

Вы должны увидеть записи, подобные этой, для дня, недели и месяца:

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

И это должно показать несколько файлов:

ls -l /etc/cron.{daily,weekly,monthly}

В /etc/cron.daily У меня есть и logrotate, и sysklogd.

И если вы это сделаете:

ps auxww | grep [c]ron

вы должны увидеть, что cron демон запущен.

Если вы это сделаете:

cat /etc/cron.daily/sysklogd

вы должны увидеть несколько строк, заканчивающихся на || exit 0 - убедитесь, что файлы существуют, а для файлов с test -x что они исполняемые. Некоторые из них не подходят для меня, поскольку я использую logrotate.

Проверьте, запущен ли syslogd:

ps -C syslogd

Посмотрите, существует ли savelog и можно ли его выполнить:

ls -l $(type -p savelog)

Это все, о чем я могу думать на данный момент.

У меня есть ubunutu 8.04 vps (w / plesk), на котором установлен, неправильно настроен и не запущен anacron. apt-get переустановить воссоздал все соответствующие файлы.

После этого все, что мне нужно было сделать, это добавить запись в ежечасный crontab, чтобы запустить anacron и заставить его выполнять свою работу.

сценарий, который я вставил в cron.hourly /, был просто

#!bin/bash
/path/to/anacron -s 

Попробуйте перезапустить службу, возникает ли ошибка?

Некоторые клоны Linux нестабильны. Мы используем cfengine для перезапуска cron и cron для просмотра критически важных вещей cfengine. Однако в наши дни ни один из них не вылетает заметно. Не то, что в 90-е, когда cron постоянно падал :-)

Это имя сценария в /etc/cron.{daily,weekly,monthly}/ в папке есть точка, похоже, она не выполняется. Попробуйте переименовать его во что-нибудь без точки.