RHEL/CentOS 是执行 /etc/cron.d/* 下的所有 cronjob 文件,还是只执行其中的一部分?

RHEL/CentOS 是执行 /etc/cron.d/* 下的所有 cronjob 文件,还是只执行其中的一部分?

这是红帽企业 Linux 5 系统 (RHEL)。我们使用 CFengine 管理这个系统。

我们有几个 cronjobs,其运行频率是平时的两倍。我检查了下面的 cronjobs /etc/cron.d/,该目录包含名为 的实际脚本host-backup,并且还包含一个名为 的 cfengine 备份文件host-backup.cfsaved,如下所示:

/etc/cron.d/host-backup
/etc/cron.d/host-backup.cfsaved

该操作系统是否执行 处的所有文件/etc/cron.d/*,还是仅执行与特定模式匹配的文件。我可以配置它吗?它是在哪里定义的?

我在 RHEL 或 CentOS 文档中找不到这个答案。

答案1

(如果您支付红帽支持费用,您应该问他们此类问题。这正是您支付的费用!)

RHEL5crontab(5)手册页:

如果存在,则/etc/cron.d/像 cron 假脱机目录一样解析该目录,只不过其中的文件不是特定于用户的,因此使用/etc/crontab语法读取(用户在第 6 列中明确指定)。

(是否有一种更简单的方法可以在不访问 RHEL 手册页的情况下阅读它?至少这样我可以看到该段落是 Red Hat 补丁的一部分,因此它不是标准的 Vixie Cron 4.1 功能。)

查看源代码,我发现跳过了以下文件:.*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave.所以是的,*.cfsaved除了原始文件之外,您的文件也会被读取。

答案2

我认为您难以找到答案的原因是这不是特定于红帽的问题。您看到的问题是标准功能的一部分cron- 您识别的目录中的每个文件是自动视为单独的工作

因此,您的问题的简短答案是“是的,所有文件都被执行”。我认为这不是可以配置的。

答案3

以下是 RedHat 支持人员的答复:

请注意, cron.d 目录下的所有文件都会被检查和执行,它基本上是 /etc/crontab 文件的扩展(即;如果将条目添加到 /etc/crontab 文件,效果相同)

因此,回答我的问题“这个操作系统是执行 /etc/cron.d/* 中的所有文件,还是只执行与特定模式匹配的文件。我可以配置它吗?它是在哪里定义的?”

/etc/cron.d/* 下的所有文件都会被执行(尽管根据源文件中的文档,某些文件扩展名(例如 .rpmsave、*~ 等)似乎被忽略)。无法通过配置文件进行配置。如果重新编译源代码,则可能可以配置此功能。源代码包含的文档中提到了此行为,但没有出现在我能找到的任何手册或手册页中。

相关内容