Crontab + .sh + php

Я пытаюсь назвать сценарий оболочки каждые 5 минут, ведьма выполняет php файл под корнем.

# crontab -l
*/5 * * * * /home/regularuser/call.sh

полномочия:

-rw-rw-rw-  1 root   root        162 Jun  6 23:40 call.php
-rwxr-xr-x  1 root   root         66 Jun  7 01:20 call.sh

содержание call.sh:

#!/bin/bash
php -q /home/regularuser/call.php
echo "request processed"

Моя проблема состоит в том, что мой php файл не становится выполняемым через crontab. Однако, если я называю call.sh - все работает отлично.

Я плохо знаком с crontab и сценариями оболочки, таким образом, любой совет/ресурсы приветствуется.

1
задан 07.06.2010, 01:48

2 ответа

Помните, что Крон будет работать с очень минимальной средой. Определенные важные вещи как ПУТЬ могут отличаться затем, что Вы ожидали.

Попытайтесь регистрировать вывод команды к системному журналу, как это:

*/5 * * * * /home/regularuser/call.sh 2>&1 | logger -t call.sh

Это распечатает любой stdout и stderr к Вашим системным журналам, обычно к/var/log/messages. Отсюда, используйте 'grep call.sh/var/log/messages' для наблюдения ошибки, которая, вероятно, будет 1-2 строками.

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

После того как Вы находите сообщение об ошибке, обновляете Ваш вопрос с ошибкой. Или, Вы смогли понимать это для себя ;)

1
ответ дан 17.12.2019, 00:40

Вы - верный php, находится на $PATH, известном crontab? Что, если Вы используете полный путь (/what/ever/bin/php?)

Кроме того, крон, как предполагается, отправляет вывод Вашей команды к Вашему почтовому ящику. Что делает это говорит?

0
ответ дан 17.12.2019, 00:40

Теги

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