74 votes

Comment envoyer la sortie d'un cronjob à plusieurs adresses e-mail ?

Au début d'un fichier crontab, vous pouvez utiliser la commande MAILTO pour indiquer que vous souhaitez que le résultat soit envoyé par e-mail à une adresse électronique. Je voudrais envoyer le résultat à plusieurs adresses. Est-il possible (et comment) de spécifier plusieurs adresses ?

96voto

ThatGraemeGuy Points 15255

Cela peut différer selon le paquetage du démon cron que vous utilisez, mais ceci provient de la page de manuel de Vixie Cron sur Ubuntu Hardy :

Si MAILTO est défini (et non vide), le courrier est envoyé à l'utilisateur ainsi nommé. MAILTO peut aussi être utilisé pour diriger le courrier à plusieurs destinataires en séparant les utilisateurs destinataires par une virgule. Si MAILTO est défini mais vide (MAILTO=""), aucun courrier ne sera envoyé. Sinon, le courrier est envoyé au propriétaire de la crontab.

Si vous n'utilisez pas Vixie Cron, ou si vous n'êtes pas sûr, essayez la page de manuel pour le fichier crontab : man 5 crontab

MAILTO="user.one@domain.one,user.two@domain.two"

18 votes

Une chose à noter : utilisez juste une virgule entre les adresses. Ne pas utiliser d'espace également sinon cron enregistrera l'adresse (probablement dans /var/log/cron ou /var/log/daemon) comme "UNSAFE" et refusera d'envoyer à cette liste d'adresses.

2 votes

En séparant les adresses par des espaces au lieu de de virgules, il m'est arrivé que cron a envoyé des courriers à la première adresse sólo (et crontab ne s'était pas plaint lors de la sauvegarde des modifications, ce qui est une honte ). Il y a des erreurs dans le syslog ( (CRON) error (bad mailto) ), mais personne n'a remarqué...

13voto

Hugo Peixoto Points 1291

Comme alternative aux réponses ci-dessus, vous pouvez envoyer des courriels à une seule adresse qui est un groupe de courrier ou une liste de distribution. Cela fonctionne particulièrement bien si vous gérez plusieurs serveurs car il est plus facile de gérer les adresses sur votre serveur de messagerie plutôt que dans la crontab de chaque machine individuelle.

0 votes

À mon avis, c'est la bonne réponse. Qui veut maintenir des listes individuelles d'adresses électroniques dans différents crontabs ?

0 votes

J'ai créé une liste simple : 1. En tant que racine, ajouter un "destinataire virtuel" à /etc/aliases en ajoutant une ligne comme celle-ci : cron-listeners: fred@example.com, george@example.com 2. Dans la crontab, définissez MAILTO=cron-listeners Si vous n'avez pas accès à la racine, vous pouvez essayer la méthode suivante .forward à la place.

5voto

Matt Simmons Points 20098

Une solution pourrait être un .forward sur ce compte utilisateur qui envoie le courrier aux adresses appropriées.

1 votes

+1 Le fichier .forward est la solution.

2voto

Bart Silverstrim Points 31022

La meilleure réponse est probablement de consulter les pages de manuel de la version actuelle de cron/crontab de votre distribution pour voir s'il est possible de faire quelque chose avec le paramètre MAILTO ou de spécifier une adresse mail qui, à son tour, transmettra le courrier à plusieurs adresses pour vous.

Il y a souvent deux crontab le fichier de configuration se trouve généralement dans la section 5, donc utilisez la fonction man -s 5 crontab .

0voto

dannyb2100 Points 17

Ajouter , après chaque courriel, par exemple : MAILTO="some.user1@example.com,some.user2@example.com"

3 votes

Dans la documentation, les e-mails sont séparés par une virgule, vous utilisez ici un point-virgule. Êtes-vous sûr que cette syntaxe fonctionne ?

1 votes

@MichaelHampton le ; ne fonctionne pas

0 votes

@Alfred Je suis bien conscient de cela. Tout comme l'autre personne qui a commenté !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X