我有一个wordpress网站。
我在以下目录中有一个php文件“ test.php” :
/var/www/html/wp-content/themes/some_theme/parts/cron
test.php
仅具有一个功能:
function cron_test(){
error_log( print_r( "It works" ) ); //print to debug.log
};
我想要的:
我要使用ssh
,crontab -e
添加一个cronjob来调用此函数。
我所做的事情:我尝试了不同的cron设置,以查看是否可行
*/2 * * * * /usr/bin/php /var/www/html/wp-content/themes/some_theme/parts/cron/test.php -f cron_test> /dev/null 2>&1
*/2 * * * * /usr/bin/php /var/www/html/wp-content/themes/some_theme/parts/cron/test.php cron_test> /dev/null 2>&1
*/2 * * * * /usr/bin/php /var/www/html/wp-content/themes/some_theme/parts/cron/test.php > /dev/null 2>&1
*/2 * * * * /usr/bin/php -q /var/www/html/wp-content/themes/some_theme/parts/cron/test.php cron_test> /dev/null 2>&1
*/2 * * * * /usr/bin/php -q /var/www/html/wp-content/themes/some_theme/parts/cron/test.php -f cron_test> /dev/null 2>&1
*/2 * * * * /usr/bin/php -q /var/www/html/wp-content/themes/some_theme/parts/cron/test.php /dev/null 2>&1
当然,它们都不起作用。
我想念什么?我将如何调用该函数?
谢谢!
答案 0 :(得分:3)
@ user1597430您能给我一个例子吗?谢谢!
示例通话:php test.php init
示例代码:
<?php
switch ($argv[1])
{
case 'init':
cron_test();
}
function cron_test(){
error_log( print_r( "It works" ) ); //print to debug.log
};
实际上,这是使用C语言的经典方式,如果您使用Google argv
/ argc
,则可能会获得更多信息。
答案 1 :(得分:0)
几个月前,我遇到了这个问题。为了解决这个问题,我创建了一个简单的sh脚本来调用我的php页面,然后将该脚本调用到我的crontab中。
crontab:
40 22 * * * sh /.../updateAvai.sh /.../lastUpdateAvai.log
updateAvai.sh:
#! /bin/bash
php /.../genereListe.php
cat /.../liste | while read LINE
do
php /.../lineTask.php $LINE > /dev/null 2>&1
done
lineTask.php:
#!/usr/local/bin/php
<?php
...
// $argv[1] contains the first argument
echo " arg " . $argv[1] . " " . (new \DateTime())->format("Y-m-d H:m:s") . "\n";
...
?>
希望有帮助,
Luc。