如何使用 Puppet 在 cron 中设置 MAILTO?

如何使用 Puppet 在 cron 中设置 MAILTO?

本来预期会有一个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 设置环境变量。

在这种情况下,它看起来像这样,将变量设置MAILTOfoobar,以便将 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当邮件传递到用户邮箱时,使用或其他程序来重定向邮件。

相关内容