繁体   English   中英

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

[英]How to invoke cron job from php script?

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

您的“ 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根crontab 35040 19déc。 2010 / usr / bin / crontab(来自Debian系统的示例)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM