【问题标题】:PHP Condition : Script performed by cronjobPHP条件:cronjob执行的脚本
【发布时间】:2015-04-17 00:31:39
【问题描述】:

我有一个脚本,只有当脚本从 cron 作业运行时才应该执行一段代码,但我不知道条件 “如果脚本由 cronjob 执行”

【问题讨论】:

  • 在执行脚本之前(在标题中)在点击事件中发送一些查询字符串。如果查询字符串已经到来,它没有在 cron 作业中执行,否则它在 cronjob 中执行
  • cron作业运行时为什么不直接传一个参数?
  • 我的主机不允许我传参数,不知道动机。
  • 创建一个传递参数的脚本,从 cron 调用...

标签: php cron


【解决方案1】:

只需使用这个问题的答案:Using CRON jobs to visit url?

但是,为 URL 提供一个参数,表明它来自 CRON 作业。

* * * * * wget -O - http://yoursite.com/script.php?fromcron=1 >/dev/null 2>&1

script.php

if(!isset($_GET['fromcron']) || $_GET['fromcron'] !== 1) {
    exit(); 
}

// ...

【讨论】:

    【解决方案2】:

    如果您有两种类型的请求,来自服务器和来自远程,您可以通过变量 $_SERVER 确定它们之间的差异。

    如果您从 php 命令运行 php 文件,则不会设置 $_SERVER['REMOTE_ADDR']。 因此,您可以使用:

    if( !isset($_SERVER['REMOTE_ADDR'] ) {
        // The script is run by php command
    }
    

    但是,如果您的 2 种请求是通过 php 命令运行的,您最好使用 2 个 php 文件,第一个是正常的,而第二个将包含第一个并运行将由运行的特定脚本定时任务。

    【讨论】:

    • @GiuseppeGrieco 如果您将此作为答案,那就太好了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 2021-01-22
    • 2014-08-04
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    相关资源
    最近更新 更多