有没有办法让Linux从文件中运行特定方法?
目前我有这个cronjob:
10 * * * * /usr/bin/php /path/to/script.php
但是我希望我的script.php可以在不同的时间保存几个函数:
public function ten_mins()
{
$this->upkeep_function_1();
$this->upkeep_function_2();
}
public function daily()
{
$this->upkeen_function_3();
}
我想避免使用wget或cURL,因为我想避免不必要的TCP设置。
我能做些什么吗?
答案 0 :(得分:4)
您可以使用getopt()
通过命令行传递参数,并在脚本中对其进行操作:
<?php
$options = getopt("f:hp:");
var_dump($options);
使用php script.php -fvalue -h运行上述脚本将输出:
array(2) {
["f"]=>
string(5) "value"
["h"]=>
bool(false)
}
答案 1 :(得分:2)
10 * * * * /usr/bin/php /path/to/script.php ten_mins
PHP文件......
public function ten_mins()
{
$this->upkeep_function_1();
$this->upkeep_function_2();
}
public function daily()
{
$this->upkeen_function_3();
}
$method = end($_SERVER['argv']);
call_user_func($method);
实际上,您的初始代码似乎缺少部分,您也可以调用这样的方法:
call_user_func(array($object, $method));
答案 2 :(得分:1)
如何获取当前日期和时间,然后根据它调用相应的函数,可能使用switch
命令?
答案 3 :(得分:1)
将脚本分成几个文件或使用commandline-option -r内联执行一些代码。这是link