cron игнорирует переменные среды?

cron игнорирует переменные среды?

Это должно быть просто, но, похоже, не работает. У меня есть очень простой скрипт, запускаемый cron:

export [email protected]
[email protected]
echo "MAILTO is set to $MAILTO"

Однако Cron, похоже, не обрабатывает переменную MAILTO — письма cron выглядят, в частности, так:

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/deploy>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=deploy>
Date: Thu, 20 Sep 2012 13:05:01 -0700

MAILTO is set to [email protected]

Что я упускаю? Почему cron не подхватывает переменные среды, заданные в скрипте?

решение1

Процесс в Unix может изменять собственные переменные среды и определять переменные среды своих дочерних процессов при их создании. Процесс не может изменять переменные среды своего родителя, переменные среды своих дочерних процессов после их создания или переменные среды любого другого процесса.

Похоже, вы пытаетесь заставить задание cron изменить переменные среды cron, что невозможно.

решение2

Я предполагаю, что вы вошли в систему не под тем пользователем, под которым запущен cron. Отсюда и возникает несоответствие.

решение3

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

Связанный контент