Forum Linux.redhat mcelog.cron

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-1
21
oct.
2013

bonjour! je viens de cloner un syst RHEL6 sous VMware il y a deux semaines. Le lendemain, le système cloné m'a envoyé un message comme ceci
"setterm: $TERM is not defined.
setterm: $TERM is not defined.
/etc/cron.hourly/mcelog.cron:

  setterm: $TERM is not defined."

et ç'est encombrant de le voir tous les heures! Est-ce que quelqu'un aurait une solution?
Merci!

  • # c'est marqué dessus

    Posté par  . Évalué à 5.

    $TERM is not defined

    faut juste le definir et tu n'auras plus le message d'alerte.

    • [^] # Re: c'est marqué dessus

      Posté par  . Évalué à 0.

      Merci NeoX! mais le problème c'est COMMENT DEFINIR $TERM?

      • [^] # Re: c'est marqué dessus

        Posté par  (site web personnel) . Évalué à 2.

        man bash et plus particulièrement la section ENVIRONNEMENT

        Système - Réseau - Sécurité Open Source

        • [^] # Re: c'est marqué dessus

          Posté par  . Évalué à 0.

          Après avoir lu le manuel de bash hier, j'ai essayé cette commande:
          declare -x TERM="xterm",

          mais ce matin je reçois toujours le même message:
          setterm: $TERM is not defined.

          • [^] # Re: c'est marqué dessus

            Posté par  . Évalué à 3.

            il faut connaitre le profil qui lance le cron, et configuré son environnement.

            si tu fais declare -x TERM="xterm" dans ton terminal ou ton ssh courant, il ne sera pas pris en compte pour les autres utilisateurs ou pour le systeme.

            regardes du coté des fichiers /etc/profile, /etc/bashrc

            oui bien simplement ouvre le script (probablement mcelog.cron) qui fait le setterm $TERM
            et remplace le par setterm xterm ou setterm vt100

            • [^] # Re: c'est marqué dessus

              Posté par  . Évalué à -1.

              Encore meri NeOx!
              Je n'ai pas trouvé le profil qui lance mcelog.cron mais voici un bout de code du fichier /etc/bqshrc

              if [ "$PS1" ]; then
              if [ -z "$PROMPT_COMMAND" ]; then
              case $TERM in
              xterm*)
              …..
              et le fichier /etc/profile ne contient pas de terme qui se reférencie à $TERM.

              Comment dois-je procéder à définir la valeur de $TERM?
              Merci

              • [^] # Re: c'est marqué dessus

                Posté par  . Évalué à 2.

                ouvre ton fichier mcelog.cron
                et remplace la ligne setterm $TERM
                par setterm xterm

                ca devrait bien suffire

                • [^] # Re: c'est marqué dessus

                  Posté par  . Évalué à 0.

                  je vous remercie tous pour votre attention,
                  DLFP
                  Je reformule le problème:
                  A est le système originale
                  B est le clone de A
                  après le clonage, B envoie tous les heures un erreur comme ceci:

                  _setterm: $TERM is not defined.
                  setterm: $TERM is not defined.
                  /etc/cron.hourly/mcelog.cron:

                  setterm: $TERM is not defined.
                  _

                  j'ai passé beaucoup de temps a comparer les fichiers suivant pour A et B:
                  _
                  mcelog.cron
                  - /etc/profile
                  - /etc/bashrc_
                  mais je ne vois aucune différence entre ces fichiers!

                  j'ai redéfini la variable $TERM
                  #declare -x $TERM="xterm"

                  mais ça ne marche toujours pas!

                  • [^] # Re: c'est marqué dessus

                    Posté par  . Évalué à 3.

                    j'ai redéfini la variable $TERM
                    #declare -x $TERM="xterm"
                    
                    mais ça ne marche toujours pas!
                    

                    je reitere mes reponses

                    ou as tu fais cette declaration ?
                    le diese suppose deux possibilités :
                    - sur la ligne de commande de root
                    - dans un script mcelog.cron, bashrc, profile ?

                    si c'est sur la ligne de commande, je doute que l'environnement ainsi declaré soit celui dont ce sert mcelog.cron
                    si c'est dans un script, le # va le mettre en commentaire et la ligne ne sera tout simplement pas executé.

                    de plus en shell (bash, sh) on declare un variable sans le $ et on l'utilise avec.
                    il faudrait donc faire declare -x TERM="xterm"

                    • [^] # Re: c'est marqué dessus

                      Posté par  . Évalué à -1.

                      Ah Oui!!!, c'est vrai j'ai oublie de le préciser: j'ai redéfini la variable TERM en ligne de commande (session root)
                      Et un grand merci pour le remarque de la déclaration de variable. J'ai oublie cette notion!
                      Je vais testé!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.