J’ai lu beaucoup de discussions sur crontab et env, mais je ne peux toujours pas le définir correctement.
j’ai utilisé
env > env_setting
Parce que je dois utiliser le même paramètre env et bash pour exécuter, donc dans crontab -e
*/1 * * * * env - `cat /path/to/env_setting` /bin/bash ; /bin/bash /path/to/program.sh
Mais ça ne marche pas. Comment utiliser le même environnement que celui que j’utilise dans les tâches cron?
PS j’utilise Red Hat.
Edit: J’ai essayé ce qui suit dans program.sh
env >> temp.log 2>&1 env - `cat /path/to/env_setting` env >> temp.log 2>&1
Mais les 2 sorties env
dans temp.log
sont exactement les mêmes. N’a pas utilisé le env_setting
cron
a un certain nombre de quirks et de problèmes, et sa gestion des variables d’environnement est notable. Vous pouvez essayer de contourner le problème en réimportant votre environnement, mais, dans la mesure du possible, une option bien meilleure consiste à éviter complètement le cron
. Pour de nombreux cas d ‘utilisation, la commande at
fonctionne beaucoup mieux, et entre autres, elle s’exécute dans votre environnement, plutôt que dans une version réduite.
Plus d’informations: