GNU/Linux >> Tutoriels Linux >  >> Linux

tput :aucune valeur pour $TERM et aucune erreur -T spécifiée enregistrée par le processus CRON

Quelque chose dans le script appelle le tput binaire. tput tente d'inspecter le $TERM variable pour déterminer le terminal actuel afin qu'il puisse produire les séquences de contrôle correctes. Il n'y a pas de terminal lorsque cron est en cours d'exécution, vous obtenez donc cette erreur de tput .

Vous pouvez soit attribuer manuellement un TERM valeur à la tâche cron (probablement dumb ou quelque chose de similaire) ou (et c'est probablement la meilleure solution) vous pouvez découvrir ce qui appelle tput et supprimer cet appel.


Le démon cron est exécuté par l'utilisateur 'root' dans son propre shell. Par défaut, cron ajoutera un courrier système envoyé à l'utilisateur exécutant le script (c'est pourquoi vous voyez l'expéditeur en tant que "root" dans le courrier système). L''utilisateur' est l'utilisateur sous lequel vous étiez connecté lors de la configuration de la crontab. Le courrier contiendra des messages de console et d'erreur. Sur Ubuntu, le fichier mail est visible à /var/mail/<username> .

Si non $TERM variable est définie, cron émettra un tput: No value for $TERM and no -T specified erreur dans le fichier courrier. Pour arrêter ces erreurs, définissez le $TERM variable utilisant TERM=dumb (ou un autre terminal disponible dans votre système, comme xterm ) dans la crontab. Le toe La commande vous montrera les définitions terminfo sur le système actuel. Si vous n'avez pas cette commande, vous pouvez voir les données brutes dans /usr/share/terminfo sur la plupart des systèmes Linux.

Même si vous avez arrêté les erreurs, vous pouvez toujours recevoir un courrier système ajouté aux messages de la console. Ce fichier se remplira comme un journal au fil du temps, vous pouvez donc arrêter ces messages. Pour arrêter le courrier du système cron, définissez le MAILTO variable utilisant MAILTO=""

Ainsi, votre crontab pourrait ressembler à :

MAILTO=""
TERM=xterm

* * * * * sh /path/to/myscript.sh

Vous pouvez afficher la crontab (pour l'utilisateur avec lequel vous êtes connecté) avec 'crontab -l'.


Linux
  1. 8 commandes Linux pour une gestion efficace des processus

  2. 20 questions et réponses d'entrevue avec Postfix

  3. Bash For Loop Guide et exemples

  4. Mail Cron Output uniquement lorsque Git lance une vraie erreur ?

  5. Bash Shell Script - Recherchez un indicateur et saisissez sa valeur

3 astuces pour améliorer les performances des processus Linux avec priorité et affinité

Cron Jobs et Crontab sur Linux expliqués

Configurer des tâches Cron pour Linux et 10 meilleurs outils en ligne pour les tâches Cron

Comment exécuter et répertorier les tâches Cron pour un système Linux via PHP

Comment la priorité du processus est-elle calculée ?

Désactiver les journaux d'erreurs et d'accès pour un hôte virtuel