在* nix上有一种方法可以在未来的某个日期触发流程。时间?

时间:2009-04-04 08:44:26

标签: linux scheduled-tasks

我希望允许用户输入通过PHP发送大量电子邮件的日期和时间,尽管我认为最好使用* nix命令来触发PHP进程。我想知道是否有一种方法在* nix上执行此操作而不添加cronjob每15分钟运行一次以检查是否有要发送的群发电子邮件。并不是说这是一个密集的过程,但是添加和管理cronjob会更漂亮。我认为这有点类似于具有结束日期的Windows计划任务,如果没有再次计划,则设置为删除。

2 个答案:

答案 0 :(得分:17)

您正在寻找at命令。

  

在[选项]时间[日期]

     

在指定时间执行命令   和可选日期。命令是   从标准输入或从a读取   文件。 (另请参见批处理。)结束输入   EOF。时间可以形成为   数字小时(可选分钟   和修饰符)或作为关键字。它可以   包含一个可选日期,形成为   月份和日期,一周中的某一天,或   一个特殊的关键字(今天或明天)。   也可以指定增量。

     

at命令始终可以发出   特权用户。其他用户必须是   如果它在/etc/at.allow文件中列出   存在;否则,他们一定不会   列在/etc/at.deny中。如果没有   文件存在,只有特权用户   可以发出命令。

     

在典型用法中,您运行并输入   要在a处执行的命令   特定的时间,然后是EOF。

     

$明天凌晨1点在>   ./total_up>输出>> mail joe<   输出>>按下进入   Ctrl-D作业1在2003-03-19 01:00

     

也可以放置两个命令   在一个文件中提交如下:

     

$明天凌晨1点<   脚本文件

答案 1 :(得分:4)

您可以使用at