Remplacer MAILTO pour une seule entrée crontab

20

Nous avons un compte de rôle au travail qui a une assez grande crontab. Son MAILTO est pointé vers une adresse partagée, de sorte qu'un certain nombre d'entre nous soient avertis en cas de défaillance.

Je voudrais ajouter une entrée à ce crontab, mais je veux seulement être averti si quelque chose ne va pas. Existe-t-il un moyen de modifier MAILTO pour cette seule entrée, ou autrement atteindre mon objectif?

Mike
la source
Une autre approche de celles suggérées jusqu'à présent consiste à utiliser la fonction qui envoie un e-mail à l'utilisateur qui exécute le travail, alors créez un autre utilisateur uniquement pour ce travail et transférez ses e-mails à vous.
Hayden Thring

Réponses:

21

Vous pouvez toujours simplement faire:

MAILTO=you
* * * ...  your cron job
MAILTO=normal.destination
freiheit
la source
1
Est-ce que les gens qui ont voté en faveur de cela l'ont vraiment testé? Si oui, quelle implémentation cron?
user1338062
Je l'ai testé avec le cron ICS / Vixie fourni avec Ubuntu 14.04 ("3.0pl1-124ubuntu2"), et cela fonctionne bien là-bas.
Nils Toedtmann
Moche, mais à peu près la seule façon de régler ce problème. Travaux!
stamster
10

Vous pouvez toujours diriger toutes les sorties vers la commande de messagerie avec l'adresse correcte dans un sous-shell. Tant qu'il n'y a rien sur STDOUT ou STDERR cron n'enverra pas l'email

10 * * * * sh -c 'cette commande 2> & 1 | mail [email protected] '

Anthony DeStefano
la source
1
Cela ne fonctionne pas - la commande "mail" envoie, qu'elle obtienne ou non une sortie. Je reçois donc un message vide sur le succès, alors que ce que je veux, c'est pas de message sur le succès.
Mike
5
Agréable! Et pour éviter les e-mails vides de la commande mail, utilisez ce paramètre: -e (ou -E pour certains ..)
3

Je ne me souviens pas si cron prépare le fichier à lire dans les variables d'environnement, donc je ne sais pas si vous pouvez changer MAILTOplusieurs fois dans un seul fichier. Mais vous pouvez toujours le diviser en un autre fichier et le mettre /etc/cron.d/fooavec un [email protected].

Brendan
la source