cron ignorando variáveis ​​de ambiente?

cron ignorando variáveis ​​de ambiente?

Isso deveria ser simples, mas não parece estar funcionando. Eu tenho um script muito simples executado pelo cron:

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

Cron, no entanto, parece não estar captando a variável MAILTO - os e-mails do cron se parecem, em parte, com isto:

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]

o que estou perdendo? Por que o cron não está selecionando as variáveis ​​de ambiente definidas no script?

Responder1

Um processo no Unix pode alterar suas próprias variáveis ​​de ambiente e definir as variáveis ​​de ambiente de seus filhos quando esses filhos são criados. Um processo não pode alterar as variáveis ​​de ambiente de seu pai, as de seus filhos após a criação desses filhos ou as de qualquer outro processo.

Parece que você está tentando fazer com que um cron job altere as variáveis ​​de ambiente do cron, o que é impossível.

Responder2

Suponho que você não esteja logado como o mesmo usuário sob o qual o cron está sendo executado. Conseqüentemente, criando a discrepância.

Responder3

Defina MAILTOa variável de ambiente no crontabarquivo. cronapenas ignore as variáveis ​​de ambiente por motivos de segurança. Se MAILTOnão for especificado, a saída será enviada ao proprietário do processo que produziu a saída.

informação relacionada