Сгенерированный файл в Crontab пуст

Мне нужна помощь с этим. Команда Artisan запускается crontab для анализа файла журнала и создания отчета в формате HTML.

Вот строка кода в команде, которая выполняется crontab:

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

К сожалению, файл, генерируемый cron, пуст, но когда вы выполняете тот же код непосредственно в терминале, он успешно генерирует html-файл. Я ценю вашу помощь, ребята.


person techgrd    schedule 22.12.2015    source источник
comment
Скорее всего, у вас проблемы с переменной PATH. Я бы предположил, что код в cron (в частности, goaccess) не находится в PATH.   -  person Kamchybek Jusupov    schedule 22.12.2015


Ответы (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;
person Will    schedule 28.12.2015