Sav*_*aun 80 php cron cron-task
我在cronjob中运行PHP脚本,我想每5分钟发送一次电子邮件
我目前的(crontab)cronjob:
10 * * * * /usr/bin/php /mydomain.in/cromail.php > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
cronmail.php如下:
<?php
$from = 'D'; // sender
$subject = 'S';
$message = 'M';
$message = wordwrap($message, 70);
mail("myemail@gmail.com", $subject, $message, "From: $from\n");
?>
Run Code Online (Sandbox Code Playgroud)
但是我在30分钟内没有收到有关此配置的电子邮件.
pax*_*blo 132
在crontab文件中,字段为:
所以:
10 * * * * blah
Run Code Online (Sandbox Code Playgroud)
意味着blah每小时过去10分钟执行一次.
如果您每五分钟一次,请使用以下任一方法:
*/5 * * * * blah
Run Code Online (Sandbox Code Playgroud)
意思是每分钟但只有每五分钟,或者:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * blah
Run Code Online (Sandbox Code Playgroud)
对于cron不理解*/x符号的旧可执行文件.
如果在此之后它仍然无法工作,请将命令更改为:
date >>/tmp/debug_cron_pax.txt
Run Code Online (Sandbox Code Playgroud)
并监视该文件以确保每五分钟写一次.如果是这样,那么PHP脚本就出现了问题.如果没有,你的cron守护进程有问题.
Gar*_*nes 27
你的CRON应该是这样的:
*/5 * * * *
当您需要测试CRON设置时,CronWTF非常有用.
将输出传递到日志文件可能是一个好主意,这样你就可以看到你的脚本是否也抛出了任何错误 - 因为你不会在终端中看到它们.
还可以尝试在PHP文件的顶部使用shebang,这样系统就知道在哪里可以找到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
如果您想每n分钟运行一次 cron ,根据 的值,有几个可能的选项n。
n 除以 60 (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30)
在这里,通过使用/符号,解决方案很简单:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
m-59/n * * * * command
Run Code Online (Sandbox Code Playgroud)
上式中,n表示值n,m表示小于n或的值*。这将在几分钟内执行命令m,m+n,m+2n,...
n 不能除以 60
如果n不除以 60,则不能用 cron 干净利落地做到这一点,但这是可能的。为此,您需要在测试检查时间的 cron 中进行测试。最好在查看 UNIX 时间戳(自1970-01-01 00:00:00 UTC. 假设我们想在 Marty McFly 到达 Riverdale 时第一次开始运行命令,然后每n分钟重复一次。
% date -d '2015-10-21 07:28:00' +%s
1445412480
Run Code Online (Sandbox Code Playgroud)
对于42在“2015-10-21 07:28:00”之后每nd 分钟运行一次的 cronjob ,crontab 将如下所示:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
* * * * * minutetestcmd "2015-10-21 07:28:00" 42 && command
Run Code Online (Sandbox Code Playgroud)
与minutetestcmd定义为
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
m-59/n * * * * command
Run Code Online (Sandbox Code Playgroud)
备注: UNIX时间不受闰秒影响
备注: cron没有亚秒级精度
| 归档时间: |
|
| 查看次数: |
111867 次 |
| 最近记录: |