if ($answer_counter == 1): ?>
endif; ?>
Синтаксис для записи crontab выглядит правильно. Действительно, если вы отредактируете свой crontab, используя « crontab -e
» (как и должно быть), вы получите сообщение об ошибке, если вы укажете синтаксически недействительную запись crontab.
-
Во-первых, действительно ли /path_to_my_php_script/info.php
корректно работает из командной строки?
-
Если да, значит, он также работает правильно:
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null)"
-
Если это работает, работает ли это так?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null >/dev/null 2>&1)"
Шаг (3) аналогичен тому, как cron будет запускать вашу программу (как описано в «man 5 cron».
Наиболее вероятная проблема, с которой вы сталкиваетесь, заключается в том, что PATH cron используется для запуска вашей программы, слишком строгая. Поэтому вы можете добавить что-то вроде следующего в начало своей записи crontab (вам нужно будет добавить все каталоги, которые потребуются вашему скрипту):
PATH=~/bin:/usr/bin/:/bin
Также обратите внимание, что cron по умолчанию будет использовать /bin/sh
, а не bash. Если вам нужен bash, добавьте это в начало вашего файла crontab:
SHELL=/bin/bash
Обратите внимание, что обе эти изменения повлияют на все записи crontab. Если вы просто хотите изменить эти значения для своей программы info.php
, вы можете сделать что-то вроде этого:
*/2 * * * * /bin/bash -c ". ~/.bashrc; /path_to_my_php_script/info.php"
Также стоит упомянуть, что в системе, настроенной для «почты» (другими словами, система с настройкой MTA [sendmail / postfix / etc]), все выходные данные из программ crontab отправляются вам по электронной почте автоматически. По умолчанию для настольной системы Ubuntu не будет настроена локальная почта, но если вы работаете на сервере, вы можете просто набрать «mail» в терминале, чтобы просмотреть все эти письма cron. Это также относится к команде « at
».