Esto debería ser simple, pero no parece funcionar. Tengo un script muy simple ejecutado por cron:
export [email protected]
[email protected]
echo "MAILTO is set to $MAILTO"
Cron, sin embargo, parece no estar detectando la variable MAILTO: los correos electrónicos cron se ven, en parte, así:
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]
¿Qué me estoy perdiendo? ¿Por qué cron no recoge las variables de entorno establecidas en el script?
Respuesta1
Un proceso en Unix puede cambiar sus propias variables de entorno y puede definir las variables de entorno de sus hijos cuando se crean esos hijos. Un proceso no puede cambiar las variables de entorno de sus padres, las de sus hijos después de crearlos o las de cualquier otro proceso.
Parece como si estuviera intentando que un trabajo cron cambiara las variables de entorno del cron, lo cual es imposible.
Respuesta2
Supongo que no has iniciado sesión como el mismo usuario con el que se ejecuta el cron. De ahí la creación de la discrepancia.
Respuesta3
Establezca MAILTO
la variable de entorno en el crontab
archivo. cron
simplemente ignore las variables de entorno por razones de seguridad. Si MAILTO
no se especifica, el resultado se enviará por correo al propietario del proceso que produjo el resultado.