一尘不染

将$ _GET参数传递给cron作业

linux

我是cron工作的新手,不确定是否会奏效。

为了安全起见,我考虑过制作一个一页脚本,该脚本查找某些GET值(用户名,密码和安全代码),以确保只有计算机和知道这3种信息的人才能运行该命令。

我制作了脚本,并且可以在浏览器中运行该脚本,但是可以使用GET值运行cron作业吗?

一个例子就是我跑步

* 3 * * * /path_to_script/cronjob.php?username=test&password=test&code=1234

这可能吗?


阅读 277

收藏
2020-06-03

共1个答案

一尘不染

仅当通过Web服务器调用脚本时,$_GET[]$_POST[]关联数组才被初始化。通过命令行调用时,参数$argv像C一样在数组中传递。

包含从命令行运行时传递给脚本的所有参数的数组。

您的命令将是:

* 3 * * * /path_to_script/cronjob.php username=test password=test code=1234

然后,您将使用parse_str()设置和访问参数:

<?php

var_dump($argv);

/*
array(4) {
  [0]=>
  string(27) "/path_to_script/cronjob.php"
  [1]=>
  string(13) "username=test"
  [2]=>
  string(13) "password=test"
  [3]=>
  string(9) "code=1234"
}
*/

parse_str($argv[3], $params);

echo $params['code']; // 1234
2020-06-03