how to change daily cron emails to go to user account instead of root

Руслан Бурханов r100500b at gmail.com
Mon Aug 31 12:26:03 UTC 2015


Ernie, look:

Open you rc.conf, copy string and modify flags for cron daemon:

cron_flags="-j 60 -m 'YOU at MAIL'"

Then, restart cron daemon (it is not necessary reboot system):

/etc/rc.d/cron restart

Then take a look on cron process:

ps auxww | grep cron

If you doing all okey, it will be something like:

root       561  0.0  0.1  7984  1528  ??  Is    3:16PM   0:00.01
/usr/sbin/cron -j 60 -m YOU at MAIL -s



2015-08-30 15:58 GMT+03:00 Arthur Chance <freebsd at qeng-ho.org>:

> On 30/08/2015 13:29, Ernie Luzar wrote:
>
>> Руслан Бурханов wrote:
>>
>>> man cron
>>>
>>>      -m mailto
>>>              Overrides the default recipient for cron mail.  Each
>>> crontab(5)
>>>              without MAILTO explicitly set will send mail to the
>>> mailto mail‐
>>>              box.  Sending mail will be disabled by default if mailto
>>> set to a
>>>              null string, usually specified in a shell as '' or "".
>>>
>>> So you just can add this option on cron flags from rc.conf, like:
>>>
>>> cron_flags="-m 'root at mymail.com <mailto:root at mymail.com>'"
>>>
>>> and restart cron daemon.
>>>
>> snip
>>
>> This method seemed the simplest so I gave it a try.
>> The host has a user account called bob. I want  all cron email to go to
>> bob and not root.
>> I use postfix and sendmail is disabled.
>>
>> I put   cron_flags="-m bob"     in /etc/rc.conf and rebooted the host.
>> Next morning the daily cron email still went to root.
>>
>> 1. Is there a way to scan rc.conf to verify all the included options are
>> valid and accepted?
>> 2. Since root and bob are on the same host is @mydomain really required?
>> 3. Any ideas why it did not work and no errors were generated?
>>
>
> The periodic script does its own output using this:
>
> output_pipe()
> {
>     # Where's our output going ?
>     eval output=\$${1##*/}_output
>     case "$output" in
>     /*) pipe="cat >>$output";;
>     "") pipe=cat;;
>     *)  pipe="mail -E -s '$host ${2}${2:+ }${1##*/} run output' $output";;
>     esac
>     eval $pipe
> }
>
> You need to override the various *_output variables periodic uses in
> /etc/periodic.conf. See my earlier mail on the subject.
>
> --
> Those who do not learn from computing history are doomed to
> GOTO 1
>


More information about the freebsd-questions mailing list