exec — php shell_exec ($ cmd) не выполняется в cronjob

извините за этот (я считаю) плохой вопрос, но Google и другие статьи на этом форуме не могут мне помочь …

Я запускаю скрипт php со следующим кодом:

    $cmd="duck  -u user_name -p pwd -parallel 1 -e overwrite -y --throttle 1024 --upload path to remote file absolute_path_to_local_file";
$shellResponse=shell_exec($cmd);

Это хорошо работает, когда я вызываю этот php-файл в браузере.
Но это не удается, когда я вызываю скрипт в cronjob.

С помощью cronjob я получаю следующее сообщение об ошибке:

sh:1: duck not found

Я считаю, что это может быть проблема с разрешениями, но я новичок в этой области и не знаю, где я могу установить разрешения и что я должен делать.

Кто-нибудь может помочь мне ?!

1

Решение

Задания Cron не получают обычную переменную PATH env, которая обычно доступна.

Попробуйте вместо этого использовать абсолютный путь для команды «duck».

Пример:

$cmd = "/usr/bin/duck ..."

Чтобы найти абсолютный путь, вы можете набрать

which duck

в обычной командной строке

2

Другие решения

Других решений пока нет …