Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/12/2015, à 09:19

JujuLand

[Résolu] Mail envoyé lors de l'exécution d'un script par le cron

Bonjour,

J'exécute un script dans le cron (crontab) tout fonctionne.
Par ailleurs, j'utilise exim4, et j'ai modifié le exim4.conf.conf pour envoyer des mails.

Lors de l'exécution du script par le cron, ce dernier envoie un mail, avec comme destinataire user@machine.
Bien sûr, ce mail est envoyé par l'intermédiaiire de mon provider (wanadoo) qui apprécie moyennement la destination et envoie donc un mail d'erreur (Mail delivery failed)

Question, y a-t-il un moyen d'empêcher cet envoi de mail par le cron.

Merci
A+

Dernière modification par JujuLand (Le 26/12/2015, à 12:33)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#2 Le 26/12/2015, à 09:57

grandtoubab

Re : [Résolu] Mail envoyé lors de l'exécution d'un script par le cron

En general ces mails sont destiné à l'administrateur de la machine qui s'appelle root

Exemple dans le script unattended-upgrades

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
Unattended-Upgrade::Mail "root";

Mais exim4 (au moins dans Debian) à la particularité de ne pas utiliser le compte root mais le compte mail:

 root@desktop:/etc/exim4/conf.d/router# cat mmm_mail4root

### router/mmm_mail4root
#################################
# deliver mail addressed to root to /var/mail/mail as user mail:mail
# if it was not redirected in /etc/aliases or by other means
# Exim cannot deliver as root since 4.24 (FIXED_NEVER_USERS)

mail4root:
  debug_print = "R: mail4root for $local_part@$domain"
  driver = redirect
  domains = +local_domains
  data = /var/mail/mail
  file_transport = address_file
  local_parts = root
  user = mail
  group = mail

c'est pour ça que dans /var/mail il n'y pas de dossier root
il faut donc créer un aliase dans le fichier /etc/aliases et faire une équivalence avec ton user standard.
Exemple, si ton user s'appelle toto

root:   toto
mail: toto

puis lancer la commande newaliases

root@desktop:/etc/exim4/conf.d/router# newaliases

Pour ce qui est des noms de machine ça se passe dans /etc/hosts

Ma machine s'appelle desktop et je l'ai configuré ainsi

root@desktop:/etc/cron.d# cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	desktop.localhost	desktop

Tout ça me permets de lire  les mails destinés à root en utilisant  Thunderbird dans lequel j'ai créé un compte root de type movemail (menu ajouter un autre compte)

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-path: <root@localhost.localdomain>
Envelope-to: root@localhost.localdomain
Delivery-date: Sat, 26 Dec 2015 09:54:39 +0100
Received: from root by desktop.localhost with local (Exim 4.84)
	(envelope-from <root@localhost.localdomain>)
	id 1aCkcZ-0000YB-Nb
	for root@localhost.localdomain; Sat, 26 Dec 2015 09:54:39 +0100
From: Anacron <root@localhost.localdomain>
To: root@localhost.localdomain
Subject: Anacron job 'cron.daily' on desktop
Content-Type: text/plain; charset=UTF-8
Message-Id: <E1aCkcZ-0000YB-Nb@desktop.localhost>
Date: Sat, 26 Dec 2015 09:54:39 +0100

/etc/cron.daily/apt:
verbose level 1
sleeping for 1041 seconds
check_stamp: interval=86400, now=1451084400, stamp=1450998000, delta=86400 (sec)
download updated metadata (success).
send dbus signal (success)
check_stamp: interval=86400, now=1451084400, stamp=1450998000, delta=86400 (sec)
download upgradable (success)
check_stamp: interval=86400, now=1451084400, stamp=1450998000, delta=86400 (sec)
unattended-upgrade (success)
check_stamp: interval=604800, now=1451084400, stamp=1450566000, delta=518400 (sec)
autoclean (not run)
skip aging since MaxAge is 0

Dernière modification par grandtoubab (Le 26/12/2015, à 10:45)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#3 Le 26/12/2015, à 10:20

credenhill

Re : [Résolu] Mail envoyé lors de l'exécution d'un script par le cron

hello
récupérer toutes les sorties du cron, il n'y aura plus de mail

* * * * * script  >> /tmp/log 2>&1

Hors ligne

#4 Le 26/12/2015, à 10:53

tiramiseb

Re : [Résolu] Mail envoyé lors de l'exécution d'un script par le cron

Salut,

Il y a deux façons "propres" de faire ça :
- soit tu t'arranges pour que ton script ne retourne rien, auquel cas aucun e-mail ne sera envoyé (si possible il vaut mieux gérer les éventuels logs à l'intérieur du script et non à l'extérieur comme propose credenhill)
- soit tu ajoutes cette ligne au début de ta crontab :

MAILTO=""
grandtoubab a écrit :

En general ces mails sont destiné à l'administrateur de la machine qui s'appelle root

Ces mails sont destinés à l'utilisateur qui exécute le cronjob.
Souvent root pour des tâches d'administration, mais je ne qualifierais pas ça de "en général".

L'exemple que tu donnes ne correspond pas au cas évoqué par JujuLand : là tu évoques un script qui envoie lui-même des emails, JujuLand évoque l'envoi d'e-mails par cron lorsqu'une commande retourne quelque chose.

Hors ligne

#5 Le 26/12/2015, à 11:47

JujuLand

Re : [Résolu] Mail envoyé lors de l'exécution d'un script par le cron

Merci,

Je pense effectivement que la solution de tiramiseb devrait me satisfaire.

Il est vrai que j'ai deux scripts qui provoquent çà.
Un qui n'a rien à voir avec le mail, et devrait donc voir ce problème résolu.
L'autre qui est envoie un mail.
Je vais faire l'essai pour voir si MAILTO="" ne pose pas de problème, sinon, pour cette entrée de crontab, je passerai par un log.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#6 Le 26/12/2015, à 12:09

grandtoubab

Re : [Résolu] Mail envoyé lors de l'exécution d'un script par le cron

NB le script que j'ai cité est déclenché par /etc/cron.daily/apt
C'est d'ailleurs écrit dans le mail reçu....

Dernière modification par grandtoubab (Le 26/12/2015, à 12:09)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#7 Le 26/12/2015, à 12:32

JujuLand

Re : [Résolu] Mail envoyé lors de l'exécution d'un script par le cron

Je vais faire l'essai pour voir si MAILTO="" ne pose pas de problème

Pas de problème, le script d'envoi de mail fonctionne toujours aussi bien , mais sans polluer ...

Merci
A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne