用WGET创建文件的php exec

时间:2018-10-15 10:18:56

标签: php laravel centos exec wget

我正在调用exec以使用php exec()和wget在backgroud中运行脚本。但是每次我称呼它时,都会在服务器中创建一个带有url参数的文件。我试图禁用输出,也尝试将其存储到特定文件。都失败了。

这是我的代码

function execInBackground($cmd)
{
    $cmd = escapeshellcmd($cmd);
    exec($cmd . " > /dev/null &");
}

我这样称呼

execInBackground('wget -q http://example.com/d/do-processing?process=501&res=201');

所以现在它将创建一个名为

的文件
  

do-processing?process = 501&res = 201

在我的服务器上。你们能不能提一下我做这个时想念的东西。

我想在后台调用该网址而不保存任何输出。在最坏的情况下,我需要将每个调用的输出存储到特定文件中,而不是创建多个文件。

exec($cmd . " > process.out 2> process.err < /dev/null &");

我尝试过上面的代码,但是没有用。

1 个答案:

答案 0 :(得分:0)

解决方案是使用wgets的-o--output-file参数,如下所示:

exec('wget -q -o /dev/null http://example.com/d/do-processing?process=501&res=201 &');

然后将不创建任何输出文件。