如何通过PHP脚本设置cron?

时间:2010-09-30 11:20:31

标签: php cron

我有10个用户。我想为这10个用户设置一个cron。现在,当一个特定用户登录时,他可以从他的面板设置玉米时间,而cron将在那时运行。当新用户添加新的cron时,将根据应用程序为该用户设置默认时间。

我怎样才能实现这一目标?

3 个答案:

答案 0 :(得分:2)

我同意thomasmalt认为这不是明智的,但你应该做的是让你的用户可以在'用户'数据库表(如mysql)中设置一个cron时间,列为:'interval(INT)'和'last_update(DATETIME)'。所以每个用户都有自己的时间设置。然后,您决定允许的最低增量(例如1分钟),并且只让您的用户设置高于该值的时间。

然后每隔1分钟运行一次cron,检查“用户”表。查找间隔小于或等于“last_update”以来的时间的任何用户。然后为这些用户运行您的操作。这有效地为每个用户设置crons做同样的事情。

答案 1 :(得分:0)

这听起来通常是一件非常不明智的事情,但是如果你知道自己在做什么并理解所涉及的安全问题等等,我建议使用两个脚本来解决这个问题

  • 一个php部分,它允许用户查看他的crontab并使用html表单操作时间设置,并将所需的更改存储在系统的已知位置。
  • 在系统上作为受信任用户运行的一个shell脚本部分以给定间隔(每分钟一次)获取更改并对cron进行实际更新。

向cron添加内容可能是一件非常危险的事情,只允许非常信任的用户这样做。任何网络解决方案都应被视为不安全,您应该格外小心,以确保任何输入都经过适当的审核。

答案 2 :(得分:0)

正如thomasmalt所说,在公共系统中这可能不明智......你不想让用户搞砸系统犯罪。

我建议您让用户在其控制面板中指定一天中的某个时间,并且每分钟运行一次cron脚本。在该脚本中,获取与当前时间匹配的用户并执行其脚本非常容易。它实现了同样的目标,更加冗长,代码更多,但更安全。