J'ai un fichier.sh avec cela, lors de l'exécution show: variable d'environnement TERM non définie.
smbmount //172.16.44.9/APPS/Interfas/HERRAM/sc5 /mnt/siscont5 -o
iocharset=utf8,username=backup,password=backup2011,r
if [ -f /mnt/siscont5/HER.TXT ]; then
echo "No puedo actualizar ahora"
umount /mnt/siscont5
else
if [ ! -f /home/emni/siscont5/S5.TXT ]; then
echo "Puedo actualizar... "
touch /home/emni/siscont5/HER.TXT
touch /mnt/siscont5/SC5.TXT
mv -f /home/emni/siscont5/CCORPOSD.DBF /mnt/siscont5
mv -f /home/emni/siscont5/CCTRASD.DBF /mnt/siscont5
rm /mnt/siscont5/SC5.TXT
rm /home/emni/siscont5/HER.TXT
echo "La actualizacion ha sido realizada..."
else
echo "No puedo actualizar ahora: Interfaz exportando..."
fi
fi
umount /mnt/siscont5
echo "/mnt/siscont5 desmontada..."
Vous pouvez voir si ce n'est vraiment pas set. Exécutez la commande set | grep TERM
.
Sinon, vous pouvez le définir comme ça: export TERM=xterm
L’utilisation d’une commande de terminal, c’est-à-dire "clear", dans un script appelé depuis cron (no terminal) déclenchera ce message d’erreur. Dans votre script particulier, la commande smbmount attend un terminal, auquel cas les solutions ci-dessus sont appropriées.
Vous avez répondu à la question avec cette déclaration:
Cron appelle cela
.sh
toutes les 2 minutes
Cron ne fonctionne pas dans un terminal, alors pourquoi vous attendez-vous à ce qu'il en soit configuré?
La raison la plus courante pour obtenir ce message d'erreur est due au fait que le script tente de générer le code source de l'utilisateur .profile
qui ne vérifie pas son exécution dans un terminal avant de faire quelque chose de connexe. Les solutions de contournement incluent l’utilisation d’une ligne Shebang telle que:
#!/bin/bash -p
Ce qui provoque la recherche de scripts de profil au niveau du système qui (on espère) ne cherche pas à faire quelque chose de trop stupide et qui aura des gardes autour du code qui dépend de son exécution depuis un terminal.
S'il s'agit de l'intégralité du script, l'erreur TERM
provient d'un élément autre que le contenu brut du script.