Почему анакрон не работает?

9

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

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

Рори
источник

Ответы:

5

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

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)

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

Приостановлено до дальнейшего уведомления.
источник
4
Кроме того, помните, что anacron - это просто конфигурация для cron, поэтому это не демон
LapTop006,
10

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

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

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

Я обнаружил, что инструмент run-parts (используемый cron) не любит суффикс .sh

kjetildm
источник
2

У меня Ubuunutu 8,04 VPS (W / Plesk), который был установлен Anacron, неправильно настроен и не работает. Переустановка apt-get воссоздала все соответствующие файлы.

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

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

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

источник
1

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

ptman
источник
0

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

SAnnukka
источник
0

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

Weishaupt
источник