kyuden Posté(e) le 28 juillet 2011 Partager Posté(e) le 28 juillet 2011 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
BreizFenrir Posté(e) le 28 juillet 2011 Partager Posté(e) le 28 juillet 2011 Pour désactiver l'envoi de courriel pour tout ton crontab, placer la ligne suivante en début de fichier devrait suffire : MAILTO="" Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 28 juillet 2011 Partager Posté(e) le 28 juillet 2011 Et avec ça ? cmd 2>&1 1>/dev/null Lien vers le commentaire Partager sur d’autres sites More sharing options...
kyuden Posté(e) le 28 juillet 2011 Auteur Partager Posté(e) le 28 juillet 2011 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
kyuden Posté(e) le 28 juillet 2011 Auteur Partager Posté(e) le 28 juillet 2011 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) le 28 juillet 2011 Partager Posté(e) le 28 juillet 2011 Bah en fait ça impose comme e-mail un champ vide, donc ça fait une erreur silencieuse sur l'envoi de mail. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 28 juillet 2011 Partager Posté(e) le 28 juillet 2011 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 ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
AHP_Nils Posté(e) le 29 juillet 2011 Partager Posté(e) le 29 juillet 2011 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 :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
kyuden Posté(e) le 29 juillet 2011 Auteur Partager Posté(e) le 29 juillet 2011 Merci a tous pour votre implication pour m'aider et m'expliquer ! @AHP, merci pour l'astuce ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.