首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何使用这个PHP时间脚本来调度没有cron的脚本?

问我如何使用这个PHP时间脚本来调度没有cron的脚本?
EN

Stack Overflow用户
提问于 2011-12-31 23:12:04
回答 1查看 1.4K关注 0票数 1

我发现了一个脚本,它应该安排一个脚本来执行。我是PHP的新手,我不想使用cron。下面是我找到的脚本:

代码语言:javascript
复制
<?php 
$hour = date('G');
$day  = date('N'); // 1..7 for Monday to Sunday

if (($hour >= 5  && $hour <= 7)  // 5am - 7am
||  ($hour >= 10 && $hour <= 12) // 10am - 12 noon
||  ($hour >= 15 && $hour <= 19) // 3pm - 7pm
||  ($day == 5)                  // Friday
) { ?>
 //my script
<?php } ?>

因为我知道的太少了,如果我把我的脚本放在它说的地方,它会在每次发生的特定时间执行吗?提前感谢您!-Ben

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-31 23:32:56

更好的方法是使用cron。这很简单,尽管一开始可能看起来很吓人:

第1步-创建将由cron运行的脚本

例如,将此代码放在<your-app-root>/cron.php中

代码语言:javascript
复制
<?php
$CRON_KEY = "some-random-value-here";
if ($_GET['key'] != $CRON_KEY) {
    header(“HTTP/1.0 403 Forbidden”);
    echo "You have no rights to access this page.";
    exit();
}

// Your code here

第2步-添加crontab条目

要自动执行cron.php脚本,可以在/etc/crontab中添加如下所示的行

代码语言:javascript
复制
## This will run each day at 2:30 AM
30 2    * * *   www-data    wget -O - -q http://yourdomain.com/cron.php?key=some-random-value-here &> /tmp/my-app-cron.log

..where some-random-value-here必须与放置在PHP脚本中的随机值匹配。这是一个安全特性,可以防止任何人运行您的cron代码。

Crontab行描述

crontab行的前五个部分是:分钟、小时、月日、月和星期。

您还可以使用范围,例如,要在每天的5、7、8、12、13、14、15、20运行脚本,您可以使用以下命令:

代码语言:javascript
复制
0 5-8,12-15,20    * * *    ...

您还可以使用“step”,例如,每5分钟运行一次(建议用于循环作业,如索引/清理任务等):

代码语言:javascript
复制
*/5 *    * * *    ...

第六个参数是将用于执行命令的用户。你可以在这里使用任何你想要的用户,www-data,任何人,你的用户,等等。最佳实践是永远不要在这里使用root,除非出于某种原因真的需要。

该行的其余部分是将在计划时间运行的命令。

&> /tmp/my-app-cron.log部件将使您最近一次执行cron.php的所有输出都存储在/tmp/my-app-cron.log中。

阅读更多..

有关cron用法的更多信息,请参阅crontab(5)

代码语言:javascript
复制
$ man 5 crontab
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8688852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档