Я запускаю PHP-скрипт в cronjob, и я хочу отправлять электронные письма каждые 5 минут
Мой текущий (crontab) cronjob:
10 * * * * /usr/bin/php /mydomain.in/cromail.php > /dev/null 2>&1 Cronmail.php выглядит следующим образом:
 <?php $from = 'D'; // sender $subject = 'S'; $message = 'M'; $message = wordwrap($message, 70); mail("myemail@gmail.com", $subject, $message, "From: $from\n"); ?> 
Но я не получил электронное письмо через 30 минут с этой конфигурацией.
  В файле crontab поля: 
Так:
 10 * * * * blah 
  означает выполнение blah через 10 минут каждый час. 
Если вы хотите каждые пять минут, используйте либо:
 */5 * * * * blah 
что означает каждую минуту, но только каждый пятый, или:
 0,5,10,15,20,25,30,35,40,45,50,55 * * * * blah 
  для старых исполняемых файлов cron которые не понимают нотацию */x . 
Если после этого все еще не работает, измените команду на что-то вроде:
 date >>/tmp/debug_cron_pax.txt 
  и следить за тем файлом, чтобы что-то было написано каждые пять минут.  Если это так, что-то не так с вашими PHP-скриптами.  Если нет, что-то не так с вашим демоном cron . 
Ваш CRON должен выглядеть так:
 */5 * * * * 
CronWTF действительно полезен , когда вам нужно проверить свои настройки CRON.
Может быть хорошей идеей, чтобы вывести вывод в файл журнала, чтобы вы могли видеть, что ваш скрипт тоже набрасывает какие-либо ошибки, так как вы не увидите их в своем терминале.
Также попробуйте использовать shebang в верхней части вашего PHP-файла, поэтому система знает, где найти PHP. Такие как:
 #!/usr/bin/php 
таким образом вы можете назвать все это так
 */5 * * * * php /path/to/script.php > /path/to/logfile.log 
  Вы устанавливаете свой cron для запуска на 10-й минуте в каждый час. 
  Чтобы установить его every 5 mins измените на */5 * * * * /usr/bin/php /mydomain.in/cronmail.php > /dev/null 2>&1 
2 шага, чтобы проверить, работает ли cronjob:
Вручную запустить команду php:
/ usr / bin / php /mydomain.in/cromail.php
И проверьте, отображается ли какая-либо ошибка.