Мои задания cron вычисляются на час позже по сравнению с серверным временем. Я не понимаю, что происходит.
Моя конфигурация следующая:
Время сервера:
Europe/Paris
В / etc / default / cron я добавил следующую строку:
TZ="Europe/Paris"
Несмотря на это, задания cron запускаются на час позже времени сервера. Что действительно сложно, так это то, что, если я прошу cron воспроизвести инструкцию «date», она выдаст дату сервера (хорошая!).
Я понятия не имею, как решить эту проблему; Я немного читал на форумах, но ничего интересного не нашел.
Как вы думаете ?
/etc/timezone
? Вы изменили/etc/timezone
позже, чемcron
процесс был начат? Ты пробовал/etc/init.d/cron restart
?Ответы:
(Копирую мой комментарий как ответ, так как он оказался решением; я угадала правильно.)
Таким образом, задания cron планируются в UTC (
Europe/Paris
с часовым смещением от UTC).На странице руководства Vixie cron написано:
Что внутри
/etc/timezone
? Вы модифицировали/etc/timezone
более недавно, чем процесс cron? Ты пробовала?
источник
Некоторые дистрибутивы, такие как Fedora, предоставляют механизм, позволяющий
CRON_TZ=
переопределить часовой пояс по умолчанию.От Fedora
man 5 crontab
Что-то вроде этого:
источник
Википедия говорит
Так что, возможно, ваш логин имеет настройку TZ, которая отличается от настройки TZ системы?
источник
Перезапуск cron был тем, что мне было нужно, но для меня команда была
источник
Только что понял это на Ubuntu 14/16. Работал отлично для меня.
Шаги (подразумевается sudo):
cat /etc/timezone
rm -fv /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
apt install -y --reinstall tzdata
/etc/init.d/rsyslog restart
tail -f /var/log/syslog
cat /etc/timezone
источник
cron
перезапустить?