Crontab中生成的文件为空

时间:2015-12-22 12:01:14

标签: grep cron crontab artisan goaccess

我需要帮助。 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文件。感谢你的帮助。

1 个答案:

答案 0 :(得分: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;