一尘不染

如何每隔X分钟执行一次cronjob?

php

我正在cronjob中运行PHP脚本,我想每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分钟内收到此配置的电子邮件。


阅读 296

收藏
2020-05-29

共1个答案

一尘不染

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

and monitor that file to ensure something’s being written every five minutes.
If so, there’s something wrong with your PHP scripts. If not, there’s
something wrong with your cron daemon.

2020-05-29