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 MAILTO
a variável de ambiente no crontab
arquivo. cron
apenas ignore as variáveis de ambiente por motivos de segurança. Se MAILTO
não for especificado, a saída será enviada ao proprietário do processo que produziu a saída.