Почему Crontab дает мне, ошибка с моим Сценарием PHP при выполнении его от терминала не делает?

Можно использовать grep для этого

grep -vh '^[[:space:]]*#' filename

С тех пор, как я предполагаю, Вы разделяете комментарии из некоторого файла, Вы могли бы также рассмотреть удаляющие пустые строки, который разворачивает вышеупомянутое до:

grep -vh '^[[:space:]]*\(#\|$\)' filename
2
08.11.2011, 17:22
3 ответа

Наиболее распространенная причина, почему сценарий работает из командной строки, но не из crontab, состоит в том, что сценарий зависит от переменной среды. Crontabs только имеют несколько наборов переменных среды: обычно только HOME, USER, SHELL (набор к /bin/sh) и PATH (набор к системному значению по умолчанию). При необходимости в больше необходимо определить их в crontab файле или источнике ~/.profile от команды.

Возможно, у Вас есть две версии установленного PHP, тот, который на первом месте в Вашей командной строке $PATH и тот, который на первом месте в Вашем системном значении по умолчанию $PATH, и системное значение по умолчанию PHP, измененный недавно. Но невозможно высказать больше, чем образованное предположение, так как Вы не говорите, какую ошибку Вы получаете.

7
27.01.2020, 21:53

Удостоверьтесь, что Вы, crontab выполняет Ваши сценарии как того же пользователя как тот, который Вы зарегистрированы как.

Некоторые огибающие права var или файла, вероятно, изменились для одного из пользователей.

0
27.01.2020, 21:53

Еще одна вещь не принять в скрипте, запущенном кроном: значение $HOME. Используйте $HOME явно, не предполагайте, что он имеет некоторое конкретное значение. Команды вызова и ссылочные файлы полными путями.

0
27.01.2020, 21:53
  • 1
    Крона обычно имеют $HOME набор правильно. В моей системе задание крона имеет $HOME, $LOGNAME, $PATH, $LANG, $SHELL, и $PWD. Однако, использование $HOME явно хорошая идея. –  Keith Thompson 08.11.2011, 23:07

Теги

Похожие вопросы