Вызов задания с ошибками с использованием другого часового пояса
У нас есть следующий сценарий.Все серверы работают в UTC.У нас есть группа клиентов в США, и конфигурация приложения определяет работу для запуска в EST.(Это означает, что время работы изменяется относительно UTC для изменений летнего времени, т.е. работа выполняется в то же местное время).Проблема в том, что нам нужно вызвать другую работу из cron, которая запускается за час до работы приложения.Это новое задание проверяет дату и, если часть дня соответствует заданному значению, выполняет остальную часть кода и завершается, если нет.(Для целей теста сегодня 11-е)
Вот фрагмент скрипта (BASH):
TODAY=$(date +%d)
echo ${TODAY}
if [[ "${TODAY}" == "11" ]]
then
echo "Today is last day of month"
# run my job
else
echo "Today is not last day of month"
fi
Для усложнения вещей в нашем crontab есть следующее:
TZ='America/New_York'
Когда я запускаю скрипт из консоли, запись в журнале выглядит следующим образом:
11
Today is last day of month (as expected)
Когда я планирую скрипт из cron следующим образом:
46 11 * * * /opt/mytest.sh
Заданиеработает в 11:46 UTC с выводом журнала следующим образом:
11
Today is last day of month (as expected)
Когда я планирую скрипт из cron следующим образом:
50 11 * * * at -f /opt/mytest.sh 07:51 (invoke at job to run at 7:51 est, ie 1151 utc)
Задание записывается в журнал в 11:51 utc, но запись в журнале выглядит следующим образом:
11
Today is not last day of month (not my expected result)
Есть идеи?