ВТФ ?! Моя cronjob не запускается?!
Вот руководство по проверочным спискам для отладки не запущенных cronjobs:
ps ax | grep cron
и найдите cron. Debian: service cron start
или service cron restart
* * * * * /bin/echo "cron works" >> /tmp/file
Синтаксис правильный? Смотри ниже. Вы, очевидно, должны иметь доступ на запись к файлу, на который вы перенаправляете вывод. Уникальное имя файла в /tmp
, которое в настоящее время не существует, всегда должно быть доступно для записи. /var/log/cron.log
или /var/log/messages
. Ubuntu: grep CRON /var/log/syslog
Redhat: /var/log/cron
chmod +x /var/www/app/cron/do-stuff.php
, если вы перенаправляете вывод своей команды в файл, убедитесь, что у вас есть разрешение на запись в этот файл / directory 30 1 * * * command > /dev/null 2>&1
повторно включить стандартный вывод или стандартный вывод сообщения об ошибке Все еще не работает? Yikes!
/etc/default/cron
установить EXTRA_OPTS="-L 2"
service cron restart
tail -f /var/log/syslog
, чтобы увидеть скрипты, выполненные Ubuntu в /etc/rsyslog.d/50-default.conf
, добавить или прокомментировать cron.crit /var/log/cron.log
перезагрузить logger sudo /etc/init.d/rsyslog reload
перезапустить cron open /var/log/cron.log
и посмотреть подробный вывод ошибки Напоминание: отключить уровень журнала, когда вы закончите с отладкой Синтаксис Cronjob
# Minute Hour Day of Month Month Day of Week User Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 2 * * * root /usr/bin/find
Этот синтаксис является правильным только для пользователя root
. Синтаксис обычного пользователя crontab
не имеет поля User (обычные пользователи не могут запускать код как любой другой пользователь);
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 2 * * * /usr/bin/find
Команды Crontab
crontab -l
Список всех задач пользователя cron. crontab -e
для конкретного пользователя: crontab -e -u agentsmith
Запускает сеанс редактирования вашего файла crontab. Когда вы выходите из редактора, измененный crontab устанавливается автоматически. crontab -r
Удаляет запись crontab из буферизатора cron, но не из файла crontab.