Назад | Перейти на главную страницу

Cron Job не запускается

Я могу запустить эту команду из CLI без проблем в коробке Fedora, но не из Cron:

/usr/bin/php /var/www/support_web/api/cron.php

Это вывод cron:

Вывод команды / usr / bin / php /var/www/support_web/api/cron.php ..

77

Файл имеет права на выполнение.

Журнал Crontab:

Jun 11 11:46:20 www crontab[23453]: (root) BEGIN EDIT (root)
Jun 11 11:46:21 www crontab[23453]: (root) REPLACE (root)
Jun 11 11:46:21 www crontab[23453]: (root) END EDIT (root)
Jun 11 11:47:01 www crond[2479]: (*system*) WRONG FILE OWNER (/etc/crontab)
Jun 11 11:47:01 www crond[2479]: (*system*) WRONG FILE OWNER (/etc/cron.d/smolt)
Jun 11 11:47:01 www crond[2479]: (root) RELOAD (cron/root)

Файлы cron должны иметь пользователя / группу root / root (/ etc / cron * и /etc/cron.{daily,hourly,etc}/* должны принадлежать root, иначе скрипты внутри не будут запускаться.

Я не знаю о личных crontab в / var / spool / cron / $ username. Однако мой личный опыт подсказывает, что это root / "группа пользователей"

Есть также некоторые требования к разрешениям, но я не знаю, что это такое. Но я знаю, что 755 работает.

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

Если это не удается, добавьте дополнительные операторы печати, чтобы увидеть, что происходит.

Если сценарий, например, находится в таком каталоге, как cron.daily где файлы выполняются автоматически, некоторые реализации cron всегда запускай их с sh независимо от шебанга. Попробуйте создать простые sh-скрипт, который просто вызывает /usr/bin/php /var/www/support_web/api/cron.php.

Вы запускаете его из CLI и из cron с одним и тем же пользователем? Если вы запустите его из интерфейса командной строки как обычный пользователь и из cron с правами root, у пользователя root могут отсутствовать некоторые переменные среды, которые нужны вашему cron.php.

Вы можете попробовать запустить из корневого cron примерно так:

su - userToRunAs -c "/usr/bin/php /var/www/support_web/api/cron.php"