问题 Cron API:有这样的事吗?


有没有Cron API这样的东西?

我的意思是,是否有一种程序化的方式来添加/删除Cron作业而不踩到Cron的脚趾?


5684
2017-09-24 22:36


起源



答案:


UNIX cron的API是文件系统。有一个 crontab 用于安装/编辑用户crontabs的命令。 crontab命令的主要原因是对用户强制实施安全限制(例如, /etc/cron.allow 和 /etc/cron.deny)。

系统cron选项卡只是放在/etc/cron.d(和cron.daily / weekly / monthly)中的文件。不需要特别小心;只需将文件放到位。引用顶部 /etc/crontab

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

格式与用户crontabs相同,在crontab(5)中记录,但在命令之前有一个用户字段。 SPACE表示空格(一个或多个),0和7表示星期日:

分钟 空间 小时 空间 天的日 空间  空间 一天的一周 空间 用户 空间 命令

使用正常的POSIX文件访问不会踩到cron的脚趾。记得, 改名 将始终将目标名称指向旧文件或新文件,永远不会为空。因此,您可以将文件写入新名称,然后将其重命名为旧文件。

许多编程语言都有API来帮助编写crontabs。例如, CPAN(Perl)有几个


8
2017-09-24 22:41



因此,如果我在/etc/cron.d/中删除一个文件,它将在下一次迭代时被cron接收而不会造成伤害?我不需要通过crontab? - jldupont
@ Jean-Lou Dupont:正确。您可以将文件放在/etc/cron.d中。 - derobert


答案:


UNIX cron的API是文件系统。有一个 crontab 用于安装/编辑用户crontabs的命令。 crontab命令的主要原因是对用户强制实施安全限制(例如, /etc/cron.allow 和 /etc/cron.deny)。

系统cron选项卡只是放在/etc/cron.d(和cron.daily / weekly / monthly)中的文件。不需要特别小心;只需将文件放到位。引用顶部 /etc/crontab

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

格式与用户crontabs相同,在crontab(5)中记录,但在命令之前有一个用户字段。 SPACE表示空格(一个或多个),0和7表示星期日:

分钟 空间 小时 空间 天的日 空间  空间 一天的一周 空间 用户 空间 命令

使用正常的POSIX文件访问不会踩到cron的脚趾。记得, 改名 将始终将目标名称指向旧文件或新文件,永远不会为空。因此,您可以将文件写入新名称,然后将其重命名为旧文件。

许多编程语言都有API来帮助编写crontabs。例如, CPAN(Perl)有几个


8
2017-09-24 22:41



因此,如果我在/etc/cron.d/中删除一个文件,它将在下一次迭代时被cron接收而不会造成伤害?我不需要通过crontab? - jldupont
@ Jean-Lou Dupont:正确。您可以将文件放在/etc/cron.d中。 - derobert


Augeas 有一个 Cron模块


4
2017-09-24 22:54



有意思...感谢链接! - jldupont


你绝对可以把它包裹起来。见 每当 红宝石宝石。


0
2017-09-24 22:46





如果您指的是基于Web的API,我们已经构建了一个REST API,您的Web应用程序可以使用该API来触发回调/ webhooks。查看 SaturnAPI的Cron。您发出HTTP请求以计划,查看和删除作业。以下是安排作业的示例:

curl -X POST \
  https://saturnapi.com/cron/jobs \
    -H saturnapi-access-key:'YOUR_SATURNAPI_ACCESS_KEY' \ 
    -d dateTimeUTC='2015:09:25 14:30' \
    -d dateTimeFormat='YYYY:MM:DD HH:mm' \
    -d callbackURL='https://your.verified.domain.com' \

0
2017-07-19 08:31





尽管如此,尽管使用crontab编写修改程序并不困难。这种事情(通过文本工具而不是期望代码级API到系统设施)是Unix范例的一部分,真的。

或者,可以使用您喜欢的任何语言的快速脚本和“睡眠”来实现一个非常简单的“cron API”。 :)


-2
2017-09-24 22:39