1

基本上我已经开发了一个小脚本,它将一个 cron 作业添加到一个名为“crontask”的文件中,然后我想执行它,这样它就变成了一个 cron 作业。这是脚本:

 <?php

    $filename = "../../tmp/crontask.txt";
    $output = shell_exec('crontab -l');
    $something = file_put_contents($filename, $output.'* * * * * NEW_CRON'.PHP_EOL);
    $cngDir = chdir('../../tmp/');
    echo exec('crontab ' . getcwd() . '/crontask.txt');
    //var_dump($exe);

?>

一切正常,路径相同,如果我复制并粘贴打印出来的路径,IT 将执行 cronjob,但在 PHP 中它不会???

一切正常,除了 exec 函数,它不执行它。有任何想法吗?

在终端中,如果我这样做:

string(25) "crontab /tmp/crontask.txt"

它会执行它。

4

2 回答 2

1

尝试以下操作:

于 2012-11-27T23:11:17.027 回答
0

我在 cron 作业中遇到了类似的问题,我查看了您的代码并得到了一些想法。我使用了绝对路径

这是我的代码:

$myFile = "/home/user/tmp/crontab.txt";
$addcron = "
0     0     *     *     *      cronjob1 " . PHP_EOL .
"0    18     *     *     1-5    conjob2 " . PHP_EOL .
"0     9     *     *     *      cronjob3 " . PHP_EOL  ;

$output = exec('crontab -l  > ' . $myFile );
file_put_contents($myFile,$addcron ,FILE_APPEND);
echo exec('crontab ' . $myFile );
echo "<h3>Cron job successfully added!</h3>";enter code here

基本上我将以前的 cronjobs 列表写入一个文件,然后在文件中附加新的 cronjobs。然后使用 crontab 命令添加新的 cronjobs 列表。linux写入文件命令'>'是诀窍;)

于 2013-04-27T11:38:07.597 回答