本来预期会有一个mailto
属性,但是此来源否认
cron { 'resource title': name => # (namevar) The symbolic name of the cron job. This name is ensure => # The basic property that the resource should be... command => # The command to execute in the cron job. The... environment => # Any environment settings associated with this... hour => # The hour at which to run the cron job. Optional; minute => # The minute at which to run the cron job... month => # The month of the year. Optional; if specified... monthday => # The day of the month on which to run the... provider => # The specific backend to use for this `cron... special => # A special value such as 'reboot' or 'annually'... target => # The name of the crontab file in which the cron... user => # The user who owns the cron job. This user must... weekday => # The weekday on which to run the command... # ...plus any applicable metaparameters. }
文档没有表明是否支持 mailto,例如:
环境
(属性:此属性代表目标系统上的具体状态。)
与此 cron 作业相关的任何环境设置。它们将存储在 crontab 中的标头和作业之间。无法保证其他较早的设置不会影响给定的 cron 作业。
此外,Puppet 无法自动确定现有的非托管环境设置是否与给定的 cron 作业相关联。如果您已经有带有环境设置的 cron 作业,那么 Puppet 会将这些设置保留在文件中的同一位置,但不会将它们与特定作业相关联。
设置应与 crontab 中出现的完全一致,例如 PATH=/bin:/usr/bin:/usr/sbin。
答案1
内置 Puppet 类型cron
问题中提到的有一个名为environment
可用于为管理的 cronjob 设置环境变量。
在这种情况下,它看起来像这样,将变量设置MAILTO
为foobar
,以便将 cronjob 的输出邮寄给用户foobar
:
cron { 'some-cron-job':
...
environment => 'MAILTO=foobar',
}
答案2
您可以使用 puppet forge 中的模块来管理 cron 并将环境变量添加到 cron 作业。我使用过这个, 可能有其他的。
你可以这样做
cron::job {
'mysqlbackup':
minute => '40',
hour => '2',
date => '*',
month => '*',
weekday => '*',
user => 'root',
command => 'mysqldump -u root mydb',
environment => [ 'MAILTO=root', 'PATH="/usr/bin:/bin"' ];
}
其中包括设置 MAILTO 和 PATH 环境变量。
答案3
cron
将输出发送给运行该作业的用户。如果您想重定向邮件,有几种选择。
- 在运行作业的脚本中处理输出和邮件。
- 使用电子邮件别名文件中的条目来重定向输出。这将重定向所有用户的邮件。
procmail
当邮件传递到用户邮箱时,使用或其他程序来重定向邮件。