10

crontab 有类似 lint 的东西吗?我想知道我已经整理好我所有的空间和星星,而无需等待某些东西不起作用。

4

6 回答 6

10

有一个用于 crons 的 Python linter。查看chkcrontab项目

您可以通过以下方式安装它pip

pip3 install chkcrontab

示例用法:

chkcrontab /etc/cron.d/power-schedule
Checking correctness of /etc/cron.d/power-schedule
E: 15: 0 12 * foo * * root echo hi
e:     FIELD_VALUE_ERROR: foo is not valid for field "month" (foo)
e:     INVALID_USER: Invalid username "*"
E: There were 2 errors and 0 warnings.
于 2014-11-06T09:20:21.840 回答
9

我发现CronWTF在编写 crontab 时非常有用 - 它将你的星星和命令转换成更人性化的东西,从而更容易阅读奇怪的 cron 作业。

更好的是,因为它都是 javascript,你可以在本地运行它,而且没有人需要知道你的顶级 sekrit cron 作业。

如果您编写 ruby​​ 代码,另一种选择是使用when gem - 您使用一个示例 ruby​​ 文件调用schedule.rb来解析,并像这样生成 crontab:

every 10.minutes do
  command "/usr/bin/my_great_command" 
end

会给你一个 crontab 条目

0,10,20,30,40,50 * * * * /usr/bin/my_great_command

而这个在这里:

every 2.days, :at => '4:30am' do
  command "/usr/bin/my_great_command" 
end

会给你:

30 4 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * /usr/bin/my_great_command
于 2010-10-04T10:50:55.977 回答
5

我认为您不需要 crontab 的 lint。有 5 个字段用空格隔开,然后是一个空格,然后是要运行的命令,它的参数结束行。

此外,至少在 Ubuntu 上,crontab 不会让您保存 bum 文件。我只是尝试了一些东西,但它对所有的东西都嗤之以鼻。我想这意味着 crontab 是它自己的 'lint for cron'。

于 2009-01-26T12:31:36.843 回答
2

我不确定这是否是您正在寻找的那种东西,但它通过向您确切显示您将计划设置为的内容,使编写 crontab 变得非常容易:

https://crontab.guru/

于 2018-05-29T21:20:52.357 回答
1

它可能有点偏离,但一种简单的方法是使用图形 crontab 编辑器(如 kcron 或 gcrontab)加载它。如果您需要在脚本中调用它,这个问题是关于如何在 php.ini 中调用它。

于 2009-01-26T11:48:07.087 回答
0

如果您无法访问 python 和 pip 来使用,您可以尝试使用Wicked Cool Shell Scripts, 2nd Edition命名48-verifycron的shell 脚本
chkcrontab

于 2021-06-09T13:57:54.227 回答