[英]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.