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

crontab не запускается в определенное время, но запускается каждую минуту

Я хочу запускать задание cron каждый день в 20:10.

10 20 * * * curl -s -o /dev/null http://www.example.com/blah.php

Однако это не работает.

Если я попытаюсь запускать его каждую минуту:

* * * * * curl -s -o /dev/null http://www.example.com/blah.php

Работает нормально. Что дает?

Команда «дата» показывает правильное время на моем сервере.

измените UTC с да на нет в / etc / default / rcS. Теперь это работает.

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

https://stackoverflow.com/questions/34626135/crontab-linux-not-running-at-specific-time

sudo service rsyslog restart
sudo service cron restart or sudo service crond restart

Вышеупомянутое должно работать нормально. Вот список, который вы можете попробовать:

  • Попробуйте другое время - например, установите его на работу через 5 минут и посмотрите, работает ли он
  • Попробуйте другого пользователя
    • Или другой кронтаб (/etc/crontab или crontab другого пользователя)
  • Попробуйте более простую команду (например, echo works > /tmp/cron-works)
    • Вы также можете просто добавить указанное выше к своему завитку (например, echo works > /tmp/curl-works; curl ...) или что-то в этом роде
    • Также хорошо добавить еще одну запись cron в то же время, которая будет эхом и оставить ваш завиток там как есть
  • Проверить логи - /var/log/syslog должен показать выполнение команд и возможные сбои
  • Подтвердите, что ваш локон действительно запустился - как узнать, сбежал ли он? Я предполагаю, что вы смотрите журналы для www.example.com - если да, перепроверьте журналы
  • Попробуйте специальные значения, например @houry (видеть man 5 crontab для полного списка)

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

Просто перезапустите службу cron.

$ sudo service cron restart