1 votes

Cron ignorera-t-il les variables d'environnement ?

Cela devrait être simple, mais cela ne semble pas fonctionner. J'ai un script très simple exécuté par cron :

export MAILTO=foo@foo.com
MAILTO=foo@foo.com
echo "MAILTO est défini sur $MAILTO"

Cependant, cron ne semble pas prendre en compte la variable MAILTO - les e-mails cron ressemblent en partie à ceci :

X-Cron-Env: 
X-Cron-Env: 
X-Cron-Env: 
X-Cron-Env: 
Date: Thu, 20 Sep 2012 13:05:01 -0700

MAILTO est défini sur foo@foo.com

Qu'est-ce que j'ai oublié ? Pourquoi cron ne prend-il pas en compte les variables d'environnement définies dans le script ?

1voto

Steven Surowiec Points 3833

Un processus dans Unix peut changer ses propres variables d'environnement et peut définir les variables d'environnement de ses enfants lors de leur création. Un processus ne peut pas changer les variables d'environnement de son parent, celles de ses enfants après leur création, ou celles de tout autre processus.

Il semble que vous essayez de faire en sorte qu'une tâche cron change les variables d'environnement de cron, ce qui est impossible.

0voto

user73759 Points 33

Je suppose que vous n'êtes pas connecté en tant que même utilisateur sous lequel le cron s'exécute. C'est pourquoi une disparité se crée.

0voto

Gordon Gustafson Points 14778

Définir la variable d'environnement MAILTO dans le fichier crontab. cron ignore simplement les variables d'environnement pour des raisons de sécurité. Si MAILTO n'est pas spécifié, alors la sortie sera envoyée par mail au propriétaire du processus ayant produit la sortie.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X