sendmail ne fonctionne pas dans crontab

Je suis confronté à un problème lorsque j’essaie d’exécuter mon script à partir de crontab mais lorsque j’essaie de l’exécuter manuellement, cela fonctionne parfaitement.

Fichier Crontab

54 * * * * /opt/SP/home/osbadm/scripts/tmp1.sh 2>&1 

Fonction Sendmail

 SUBJECT="test" TO="[email protected]" ( echo "TO: $TO" echo "MIME-Version: 1.0" echo "Subject: $SUBJECT" echo "Content-Type: text/html" cat $EXTRACT_CST_HTML ) | /usr/sbin/sendmail -f [email protected] $TO 

Est-ce que quelqu’un peut m’aider s’il vous plait.

Vous ne pouvez pas mettre une affectation de variable avant le ( qui commence un sous-shell. Si vous avez collé votre script dans shellcheck.net, cela vous aurait dit:

SC1036: ‘(‘ n’est pas valide ici. Avez-vous oublié d’y échapper?

De plus, même si vous le pouviez, la variable serait uniquement définie dans l’environnement du sous-processus, elle ne serait pas visible lors du traitement des arguments dans sendmail . Donc, mettez cette affectation sur sa propre ligne. En outre, un doc-here est un moyen plus simple de transmettre plusieurs lignes d’entrée à sendmail .

 TO="[email protected]" ( echo "TO: $TO" echo "MIME-Version: 1.0" echo "Subject: $SUBJECT" echo "Content-Type: text/html" cat $EXTRACT_CST_HTML ) | /usr/sbin/sendmail -f [email protected] $TO