Posté(e) le 28 juillet 201113 a Bonjour a tous. J'ai actuellement un ptit soucis avec une tache cron que voici (/etc/cron.d/php5) : 09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete Cette tache s'execute toutes les 30 minutes et, suite a une erreur, envois un mail de raport via root. Alors qu'on soit bien claire: Le but serait d'empêcher l'envois du mail et non as de corriger l'erreur. Je suis en pleine connaissance de l'erreur et celle ci ne m'est absolument pas dérangeante. Je ne sais donc plus quoi faire pour l'empêcher de m'envoyer son mail toutes les 30 minutes. J'ai tenté : 09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete >/dev/null 2>&1 09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete > /dev/null 2>&1 (espace entre > et /dev) 09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete 2>&1 >/dev/null 09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete 2>&1 > /dev/null (espace entre > et /dev) 09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete 2>/dev/null L'utilisation de la redirection de l'output vers /dev/null me depasse un peu je dois l'avouer :/ Dans le mail envoyé par cette commande, je relève ceci qui pourrait eventuellement vous aiguiller : No log handling enabled - turning on stderr logging Quelqu'un aurait il une solution afin d'empêcher cette tache de me spammer un mail toutes les 30 minutes? Dans l'espérance d'une réponse rapide, je vous remercie pour votre attention !
Posté(e) le 28 juillet 201113 a Pour désactiver l'envoi de courriel pour tout ton crontab, placer la ligne suivante en début de fichier devrait suffire : MAILTO=""
Posté(e) le 28 juillet 201113 a Auteur Et avec ça ? cmd 2>&1 1>/dev/null 09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete 2>&1 1>/dev/null Ne fonctionne pas :/ @BreizFenrir J'essais ça et je te dis Merci pour votre attention en tous les cas
Posté(e) le 28 juillet 201113 a Auteur Pour désactiver l'envoi de courriel pour tout ton crontab, placer la ligne suivante en début de fichier devrait suffire : MAILTO="" Cette solution fonctionne ! Par contre pourrais tu m'expliquer son fonctionnement? Je cherche juste a comprendre "pourquoi ca marche"? ^^ Merci en tout cas, je place de suite le sujet en résolu
Posté(e) le 28 juillet 201113 a Bah en fait ça impose comme e-mail un champ vide, donc ça fait une erreur silencieuse sur l'envoi de mail.
Posté(e) le 28 juillet 201113 a En fait, en cas de sortie sur la sortie d'erreur, cron essaie d'envoyer un mail. Avec la variable MAILTO, tu lui dis à qui l'envoyer. Si tu la mets vide, il n'enverra pas de mail faute de pouvoir l'envoyer à quelqu'un ...
Posté(e) le 29 juillet 201113 a Hello, il est toujours pratique de pouvoir garder une trace du traitement, ne serait-ce qu'à des fins de déverminage. Le mieux serait de renvoyer les sorties vers un fichier qui agira comme fichier de log. Par exemple, par défaut, sous NetBSD, on a le traitement suivant : 15 3 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | sendmail -t Je l'ai modifié ainsi : 15 3 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out > /dev/null 2>&1 (au passage, tee est un sympathique petit programme :) ) Mais je n'ai pas pu faire taire toutes mes tâches cron spammeuses au taf avec tee et une redirection vers Dave Null, donc de manière plus directe on peut aussi faire comme ceci : 15 3 * * * /bin/sh /chemin/vers/mon/script.sh >> var/log/script.log 2>&1 En prime, selon l'heure de vos tâches cron, pensez à mettre en place un fichier de configuration pour Logrotate (dans /etc/logrotate.d/ sous Linux) ou à ajouter une configuration dans syslog, ou newsyslog (par exemple /etc/newsyslog.conf sous NetBSD), selon les logiciels installés. Vous pourrez ainsi garder la possibilité d'envoyer un mail pour d'autres scripts. On sait jamais, ça peut servir :)
Posté(e) le 29 juillet 201113 a Auteur Merci a tous pour votre implication pour m'aider et m'expliquer ! @AHP, merci pour l'astuce !
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.