Journal Comment arrêter l'envoi de mails du crontab ?

Posté par  .
Étiquettes : aucune
0
10
mar.
2004
Bonjour à tous,

Me voila confronté (et je suis passé tout près de l'explosion d'un serveur en production) à un problème de taille (taille disque lol).


En effet, j'ai un job qui tourne dans le crontab toute les demi heures, malheureusement (ou heureusement) je recois un mail a chaque éxécution, cependant le mail est d'une taille assez importante et le serveur risque d'être full à cause cette même boite mail.



Ma question est donc simple, comment je fais pour arrêter l'envoi de mail pour CE job et pas les autres !!



Voici la ligne que j'ai mis dans le crontab :



0,30 6-20 * * * sh -x /home/content/sem/bin/get_news.sh 2>&1 | tee /home/content/sem/log/get_news.log



J'ai absolument besoin du log mais pas du mail !!!
J'ai ajouté dans le script get_news.sh (export MAILTO=/dev/null) mais sans résultats, je recois toujours le mail; Je pense que je peux ajouter ... > /dev/null mais je ne sais pas trop ou l'ajouter dans la ligne du crontab



Help me plzzz



:)
  • # Re: Comment arrêter l'envoi de mails du crontab ?

    Posté par  . Évalué à 3.

    un exemple de ce que j'ai ds ma crontab

    0 * * * * monscript 2>/dev/null

    sachant que mon script est de la forme:

    #!/bin/sh

    cd quelquepart
    wget recupmoica
    mv ceci `date +%Y%m%d%H%M`.labas

    voila, avec ca aucun message ds la mailbox.

    En esperant que ca resolve ton probleme (et ca le devrait)
  • # Re: Comment arrêter l'envoi de mails du crontab ?

    Posté par  . Évalué à 1.

    hmmm quelquechose vient de parvenir a ma conscience et m'intrigue... pourquoi rediriges-tu la sortie 2 sur 1 ?

    de tete je dirais que le mail que tu recois contient la sortie (a l'affichage) de tee...

    tente:
    sh -x /home/content/sem/bin/get_news.sh 2>&1 | tee /home/content/sem/log/get_news.log >/dev/null

    (eventellement 2>/dev/null ou un mix du genre)
  • # Re: Comment arrêter l'envoi de mails du crontab ?

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

    Tout au début du crontab :

    MAILTO=""
  • # Re: Comment arrêter l'envoi de mails du crontab ?

    Posté par  . Évalué à 3.

    et les man c'est pourquoi faire ?

    man cron :
    When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if such exists).


    comme tu as utilisé " | tee ..." , il y a un output , donc il est envoyé par mail !

    donc la solution est evidente (et deja indiquée par quelqu'un, plus haut)
  • # Re: Comment arrêter l'envoi de mails du crontab ?

    Posté par  . Évalué à 1.

    0,30 6-20 * * * sh -x /home/content/sem/bin/get_news.sh > /home/content/sem/log/get_news.log 2>&1

    C'est le plus simple
    avec ca, tu reçois aucun mail pour cette commande-ci uniquement
  • # Re: Comment arrêter l'envoi de mails du crontab ?

    Posté par  . Évalué à 1.

    Merci à tous pour vos commentaires !!!

    D'une grande utilité pour le newbie que je suis ;-)
  • # Re: Comment arrêter l'envoi de mails du crontab ?

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

    fcrontab roxor, il permet facilement de décider pour chaque entrée si il faut envoyer un mail ou non.
  • # Re: Comment arrêter l'envoi de mails du crontab ?

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

    Remplace juste le "| tee" par ">".
  • # Re: Comment arrêter l'envoi de mails du crontab ?

    Posté par  . Évalué à 2.

    Attention : sujet polémique

    C'est marrant quand même : dès qu'il y a un sujet un tant soit peut polémique, ya plein de monde qui commente, plein de KDE rulez GNOME suxor etc.... Enfin bref on a souvent l'impression qu'il y a plein de gourou sur ce site !

    Et là sur une question "ULTRA" simple, sur 9 commentaires combien sont à coté de la plaque.
    On a le droit au RTFM ou au fcrontab roxor (faut vraiment être con pour utiliser autre chose que le cron de base !)

    La question est super bien posée. Il décrit ce qu'il veut et explique ce qu'il fait et ce qui ne marche pas.
    Pour moi les réponses (qui ont quand même été données) auraient du être du type :

    0,30 6-20 * * * sh -x /home/content/sem/bin/get_news.sh > /home/content/sem/log/get_news.log 2>&1

    et l'explication qui va avec

    tee redirige l'entrée standard dans un fichier et sur la sortie standard. Le cron récupère quelque chose sur la sortie standard et donc t'envoie un mail. Il ne faut donc pas utiliser tee

    > redirige directement dans le fichier
    2>&1 redirige la sortie d'erreur vers la sortie standard

    et enfin un petit lien bien utile (un peu hors sujet sur ce coup là, mais tellement utile)
    Advanced Bash scripting guide : http://www.tldp.org/LDP/abs/html/(...)

Suivre le flux des commentaires

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