PHP和Cron作业
可能重复: php中是否有cronjob的条件标记?我想做的是:PHP和Cron作业,php,cron,Php,Cron,可能重复: php中是否有cronjob的条件标记?我想做的是: if(cron_job_executing_this_php_file) { do something } elseif($_SERVER['REMOTE_ADDR'] = "blah.bl.ah.bl") { do something } 我可以这样做吗?你可以用。它应该从命令行返回一个不同的值,包括但不限于cron,而不是从CGI或mod_php返回的值。您只需在crontab中为php调用添加一个arg: 0 1 0 0
if(cron_job_executing_this_php_file)
{
do something
}
elseif($_SERVER['REMOTE_ADDR'] = "blah.bl.ah.bl")
{
do something
}
我可以这样做吗?你可以用。它应该从命令行返回一个不同的值,包括但不限于cron,而不是从CGI或mod_php返回的值。您只需在crontab中为php调用添加一个arg:
0 1 0 0 0 php myscript.php from_cron
然后在脚本中对其进行测试:
foreach($argv as $value)
{
echo "$value\n";
}
这比依赖$SERVER super global更安全。是的
如果您输入以下内容:
if (isset($_SERVER['REQUEST_METHOD'])) {
// Do non-shell stuff here
} else {
// Do shell stuff here
}
您可以从cron将参数传递到php脚本中 差不多 01 04 1/path/to/my/script.php fromcron 然后,您的script.php可以询问: 如果$argv[1]==fromcron
您可能有一些索引错误,所以不要要求$argv[1],除非您知道它将在索引[1]处有一个元素.为什么不为您的cron作业创建一个单独的php文件呢?如果您的crontab能够发送$\u GET变量0 3***sudo/usr/local/bin/myfile.php?cron=true似乎与我认为您应该撤销您的注释,如果设置了REQUEST\u方法,则可以执行非shell操作。