crontab 文件可以包含 1k+ 行计划吗?

crontab 文件可以包含 1k+ 行计划吗?

我计划创建计划任务,并且希望 Linux 使用 crontab 来处理这些任务。

笔记:有些任务有不同的时间表,有些则相同

[crontab 文件(schedule.cron)]

* * * * * /application/monitor -source1
* * * * * /application/monitor -source2
* * * * * /application/monitor -source3
...
* * * * * /application/monitor -source500
* * * * * /application/monitor -source501
* * * * * /application/monitor -source502
...
* * * * * /application/monitor -source1000
* * * * * /application/monitor -source1001
* * * * * /application/monitor -source1002

答案1

对于那些寻找极限的人来说,这仍然是最重要的crontab(包括我自己)。所以这里是其他感兴趣的人的更新。

自 2019 年起,cronDebian 将强制执行最大crontab行数,以防止恶意用户创建过大的crontab。根据Debian 更改日志

  • 3.0pl1-133 版本于 3 月 10 日引入了 1000 行的限制
  • 3.0pl1-134 版于 6 月 23 日将此限制放宽至 10,000 行

基于 Debian 的发行版(例如 Ubuntu 和 Mint)可能很快就会采用这些变化。

答案2

我很确定 cron 文件的长度没有限制(也许由于 32 位限制,是 65536 个字符/行?)。

Stack overflow 上的一些人服务器故障认为有一个限制:

(2011) Ubuntu Debian 限制为 256 个(我刚遇到过这种情况)。FreeBSD 很乐意接受 600 个条目。我还没有检查过超过这个数目,但 600 个 crontab 条目对任何人来说都应该足够了 :)

但这不是公认的答案,这是,并且它说没有公认的答案。

似乎没有记录对允许的 crontab 条目数量的限制。因此,除了检查您正在使用的特定版本的源代码外,crontab 手册页中的 BUG 条目可能有所帮助:

Although cron requires that each entry in a crontab end in a newline character, neither the crontab command nor the cron daemon will detect this error. Instead, the crontab will appear to load normally. However, the command will never run. The best choice is to ensure that your crontab has a blank line at the end.

等等Unix 和 Linux,答案如下:

cronies 的限制似乎取决于文件系统(最大文件大小),因为 cron 守护进程将每个用户的 crontab 条目存储在链接列表中 - 有关详细信息,请参阅 cronie 中的 user.c。这意味着 crontab 的最大作业条目数基本上是无限的。

所以我很确定它是无限的,但你需要在最后有一个空白行。:)

相关内容