1

我对使用puppet cron 类型的environment 属性感到困惑。设置 PATH 似乎是一个奇怪的地方,因为如果我有多个要设置的 cron 作业,它们似乎会发生冲突。除了每个 cron 作业的特定任务之外,它不应该设置在一个对用户的所有 cron 作业都是全局的位置吗?

4

2 回答 2

0

Ben,在我看来,这对于 cron 工作非常有意义。考虑这个,作为一个例子:有一个名为 Composer 的工具用于 PHP 中的依赖项管理,并说我想通过 cron 安排对我的依赖项的自动更新。如果有许多依赖项和/或更新它们的时间太长,则该工具将超时,这就是它接受 COMPOSER_PROCESS_TIMEOUT 环境变量的原因。因此通过设置

environment => 'COMPOSER_PROCESS_TIMEOUT=2000',

我会有效地更改这种特殊情况的超时时间,而不涉及其他任何内容。

希望这是有道理的,并清除了一点空气。

于 2013-10-27T14:35:39.777 回答
0

我不相信环境变量会相互冲突。cron 资源似乎在命令执行时设置了变量。所以它不应该在其他 cron 作业期间说设置。

例如。

# Puppet Name: pe-mcollective-metadata
0,15,30,45 * * * * /opt/puppet/sbin/refresh-mcollective-metadata
# Puppet Name: report_baseline
0 20 * * * PATH=/opt/puppet/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin /opt/puppet/bin/puppet inspect 1> /dev/null

因此,您可以在此处看到 refresh-mcollective-metadata 作业在运行时没有设置 PATH 变量,但 report_baseline 作业有。

于 2013-11-02T22:07:24.063 回答