Cron API:有这样的事吗?

时间:2009-09-24 22:36:15

标签: linux cron

有没有Cron API这样的东西?

我的意思是,是否有一种编程方式可以在不踩到Cron的脚趾的情况下添加/删除Cron作业?

5 个答案:

答案 0 :(得分:8)

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表示星期日:

  

分钟空间小时空间日期空间空间日周 SPACE 用户 SPACE 命令

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

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

答案 1 :(得分:4)

答案 2 :(得分:0)

你绝对可以把它包裹起来。请参阅Whenever ruby​​ gem。

答案 3 :(得分:0)

如果您指的是基于Web的API,我们已经构建了一个REST API,您的Web应用可以使用该API来触发回调/ webhook。查看SaturnAPI's 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' \

答案 4 :(得分:-2)

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

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