запустить cronjobs и отправить на электронную почту проблемы
Вопрос
Я хочу создать cronjobs, который запускается каждые 10 минут <время сейчас
и напишите мне электронное письмо со следующим текстом.
"удаленные заказы"
мой код выглядит так.
MAILTO=”my_email@mail.com”
*/10 * * * * /var/www/php-sites/dlf/cron_jobs.php
Я проверял почту последние 30 минут..и до сих пор не получил никаких писем.я делаю это неправильно?
Решение
Прежде всего, насколько я помню, php-скрипты должны выполняться следующим образом (пример для пути Ubuntu, насчет других дистрибутивов не уверен):
/usr/bin/php-cgi /var/www/php-sites/dlf/cron_jobs.php
Также вы можете сохранить результат задания в файл, чтобы увидеть точные причины сбоев, для вашего задания это может выглядеть так:
*/10 * * * * /usr/bin/php-cgi /var/www/php-sites/dlf/cron_jobs.php > /tmp/cron.out 2>&1
Проверьте содержимое cron.out.
Надеюсь это поможет.
РЕДАКТИРОВАТЬ
Я провел небольшой тест, и обычный способ Shell, похоже, тоже работает.Я создал сценарий phptest.sh (+x) с содержимым:
#!/usr/bin/php-cgi
echo "It works this way!";
И вроде бы работает, кроме одного.Он выдает заголовки в стандартный вывод, например:
***@***:~$ ./phptest.sh
X-Powered-By: PHP/5.2.10-2ubuntu6.3
Content-type: text/html
echo "It works this way!";
Но я полагаю, что мы можем как-то избавиться от них, если они представляют собой проблему.
Единственное преимущество этого - более короткий путь :)