Задание крона отсылает те же данные каждый раз несмотря на изменения в базе данных

Возможно, не слишком важный для (внешнего) Интернет-соединения, но мог бы хорошо иметь значение для коммуникации межсервера в Вашем дата-центре (между сервером приложений и сервером базы данных, например).

1
задан 30 January 2013 в 18:23
2 ответа

Я думаю, ваша проблема здесь:

echo "$OUTPUT" > $TEMPFILE

Это должно быть

echo "$OUTPUT" >| $TEMPFILE

Поскольку>, если файл существует, он не перезапишет его, если не установлен noclobber .

]
0
ответ дан 4 December 2019 в 09:26

Кажется, ваша проблема в том, что ваш Groovy вообще не запускается из cron, поэтому он просто продолжает отправлять одно и то же электронное письмо.

Что вы можете сделать, добавьте в начало вашего скрипта :

source /etc/bashrc

Полная строка может выглядеть так:

30 * * * * source /etc/bashrc; /opt/groovy/bin/groovy /path/to/groovy/script.groovy >>/var/log/MyGroovyScript-stdout.log 2>/var/log/MyGroovyScript-error.log

Или как угодно, что подходит для вашей среды.

В этот файл, / etc / bashrc, вам нужно добавить следующее:

export JAVA_HOME=/usr/java/latest

Как только у вас будет JAVA_HOME в ваши переменные среды, он будет работать. Cron не использует / etc / bashrc сам по себе, поэтому ваша переменная JAVA может отсутствовать полностью.

0
ответ дан 4 December 2019 в 09:26

Теги

Похожие вопросы