У меня есть система 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}/
в папке есть точка, похоже, она не выполняется. Попробуйте переименовать его во что-нибудь без точки.