0

我有两个 php 文件。在一个 php 文件中,有一个简单的 html 表单,当用户设置时间和日期并提交表单然后所有下拉值存储在数据库中时,我在其中为 cronjob 选择时间和日期创建了一些下拉列表。

现在在这个存储值的帮助下,我需要设置 cronjob,当 cron 执行时,它运行另一个 php 文件,我在其中编写了一些代码来生成 xml 文件。并且该文件每次运行时由用户存储在数据库中。

通过使用 Cpanel,我可以做到这一点,但我不想使用 cpanel。

请给我一些适当且可行的解决方案,我真的需要它。提前致谢。

4

1 回答 1

0

使用 phpssystem()exec()function 调用crontab命令来替换或修改运行 Web 服务器的帐户的现有 crontab。您可能必须确保允许用户使用 cron 系统,这取决于您使用的操作系统。

在 crontab 中,您可以使用两种策略之一来运行 php 脚本_ - 像任何普通命令一样调用 php cli 解释器,例如:/usr/bin/php并给它解释的脚本。作为替代方案,您也可以shebang在 php 脚本中使用并将其作为简单的可执行文件调用。-wget当你想在你的网络服务器中执行脚本时,用来调用一个指向你的网络服务器(可能是本地主机)的 url。

这可以作为您试验的起点:

#!/usr/bin/php
<?php
// the time tokens to be fed into the crontab line
$time=array('10','*','*','*','*');

// the actual command to be executed
$command=sprintf("crontab -l | (cat;echo \"%s\t%s\") | crontab", 
                 implode(' ',$time), 
                 '/usr/bin/beep');

// execute command
$result=system($command);

// output result of execution
if ($result)
  echo "Result: $result\n";
else
  echo "FAILURE!\n";
?>

从 CLI 调用时为我工作。

于 2012-11-09T10:52:35.343 回答