Comment utiliser le même environnement que celui que j’utilise dans les tâches cron?

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:

  • Programmer facilement une commande à exécuter plus tard?
  • Pourquoi avons-nous besoin de la commande “at” sous Linux?