我需要帮助。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文件。我感谢你们的帮助。
这很可能是因为PATH
在crontab
下运行时配置不正确。对于crontab
的大多数实现,您可以简单地在用crontab -e
:打开的crontab文件的第一行指定PATH
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;