We have a role account at work that has a pretty big crontab. Its MAILTO is pointed at a shared address, so that a number of us get notified if something fails.

I'd like to add an entry to this crontab, but I only want myself to be notified if something goes wrong. Is there a way to change MAILTO for this one entry, or otherwise accomplish my goal?

link|improve this question

40% accept rate
feedback

3 Answers

up vote 11 down vote accepted
ORIGMAILTO="$MAILTO"
MAILTO=you
* * * ...  your cron job
MAILTO="$ORIGMAILTO"

I think that works... Otherwise, you can always just do

MAILTO=you
* * * ...  your cron job
MAILTO=normal.destination
link|improve this answer
feedback

You can always pipe all output to the mail command with the correct address in a subshell. As long as there is nothing on STDOUT or STDERR cron will not send the email

10 * * * * sh -c 'thisonecommand 2>&1 | mail otheraddress@foo.com'

link|improve this answer
This doesn't work -- the "mail" command sends regardless of whether or not it gets output. So I get an empty message on success, whereas what I want is no message on success. – mike Jul 1 '09 at 17:46
1  
Nice! And to avoid empty emails from mail command, use this parameter: -e (or -E for some..) – user58599 Oct 28 '10 at 20:17
feedback

I cant recall if cron pre parses the file to read in the environment vars, so im not sure if you can change MAILTO multiple times in a single file. but you can always split it to another file and put it in /etc/cron.d/foo with a MAILTO=some@email.tld

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.