如何从php脚本调用cron作业?

时间:2012-05-09 07:54:15

标签: php cron invocation

我想从php脚本文件中设置cron作业。我可以使用shell_exec()函数执行php文件。但是我无法运行与cron作业相关的命令。 $output = shell_exec("crontab -l");此命令无效。我的cronjob位于/ usr / bin / crontab下。我将文件预设置为777并使用root访问权限执行此命令。仍然没有运气。有谁可以帮助我?

1 个答案:

答案 0 :(得分:0)

您的“crontal -l”命令只会在其个人crontab中显示为您的用户安排的内容。它可能会返回一个空字符串,具体取决于您当前的个人crontab。 不要与所有用户的文件/ etc / crontab(系统范围的crontab)混淆,只能由root用户写入。

如果您需要 - 我认为我理解 - 要从PHP脚本中添加crontab中的作业,也许您可​​能只想尝试以下内容:

$r=shell_exec('cat "30 6 * * * user my_cmd my_args" >> /etc/crontab');

例如,安排“my_cmd my_args”,以“用户”身份运行,每天早上6:30。 这个PHP脚本应该以root身份启动,因为只有他可以在/ etc / crontab中写入。

小心:我希望你的php脚本不是从一个网站启动的,而是从访问受限环境的命令行启动,以限制安全风险,特别是如果你做了一些事情让它以root身份启动。这种脚本是你系统中的一个很大的漏洞。考虑一下。这是我的建议。

顺便说一下,/ usr / bin / crontab的权限回到:

-rwxr-sr-x 1 root crontab 3504019déc。 2010 / usr / bin / crontab (来自Debian系统的例子)。