1

我需要这方面的帮助。crontab 正在运行 Artisan 命令来分析日志文件并生成 HTML 格式的报告。

这是 crontab 正在执行的命令中的代码行:

$today = date("d/M/Y");
exec('grep "$today" /path_to_logfile | goaccess -a > /path_of_generated_HTML_file');
exit();

不幸的是,cron生成的文件是空的,但是当您直接在终端中执行相同的代码时,它会成功生成一个html文件。我很感激你们的帮助。

4

1 回答 1

1

这很可能是因为您PATH在运行时配置不正确crontab。对于 的大多数实现crontab,您可以简单地PATH在使用以下命令打开的 crontab 文件的第一行指定crontab -e

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

如果您愿意,也可以在 PHP 中设置路径:

<?php

putenv('PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin');

$today = date("d/M/Y");
exec('grep "$today" /path_to_logfile | goaccess -a > /path_of_generated_HTML_file');
exit;
于 2015-12-28T12:02:14.697 回答