Почему cronjobs работают не вовремя?
У меня есть настройка cronjobs для ежедневного запуска на моем сервере Ubuntu.
например. 0 4 * * * команда
Они бегут, за исключением того, что они бегут на 8 часов раньше. При настройке сервера изначально было установлено время UTC. Я побежал sudo dpkg-reconfigure tzdata
установить сервер на CST, который на 6 часов отстает от UTC. Интересно, что я нахожусь в PST, который на 8 часов отстает от UTC, но я не понимаю, как сервер мог это узнать.
Если я запускаю команду date
показывает время в CST.
Там должно быть какое-то место, где время настроено неправильно. Где я могу посмотреть, чтобы решить эту проблему?
4 ответа
Вы не забыли перезапустить cron после смены часового пояса? Если нет, то у cron все еще может быть старое представление о часовом поясе с момента его первоначального запуска.
Хотя это и не является строго необходимым, я обычно рекомендую перезагрузить компьютер после изменения часового пояса - часовой пояс сервера никогда не должен изменяться (или, по крайней мере, он должен быть ОЧЕНЬ нечастым), и это гарантирует, что каждая программа на сервере была перезапущена и знает об изменении:-)
Для меня я обнаружил, что когда я запускаю hwclock
Команда время на час отличалось от того, когда я управлял date
команда. Чтобы исправить это вы можете позвонить hwclock --systohc
который синхронизирует два раза и запускает cronjobs в ожидаемое время.
В Ubuntu 20 перезапустите демон cron с помощью:
sudo service cron restart
Чтобы проверить эту проблему, вы также можете просмотреть журналы cron. В журналах cron вы увидите нежелательное время. Эта проблема возникает, когда часовой пояс установлен, но служба cron не перезапускается. Кроме того, вам также следует перезапустить службу rsyslog.
Пожалуйста, введите эту команду, чтобы решить эту проблему.
sudo systemctl restart crond
sudo systemctl restart rsyslog