我正在使用cakephp 2.x并希望在cron中执行shell。
我将shell作为后台进程运行的目的是生成一个包含大量数据的XML文件。
我已将PATH变量设置为.bashrc文件中的path / to / app / Console。我还在/ app / Console / cakeshell中创建了cakehell文件,并使其可执行,如cakephp 2.x文档中所述。我也在/app/Console/Command/myjobShell.php中创建了我的shell。
以下是蛋糕的代码:
#!/bin/bash
TERM=dumb
export TERM
cmd="cake"
while [ $# -ne 0 ]; do
if [ "$1" = "-cli" ] || [ "$1" = "-console" ]; then
PATH=$PATH:$2
shift
else
cmd="${cmd} $1"
fi
shift
done
$cmd
注意:我已将cmd='cake'
更改为完整路径cmd='/path/to/app/Console/cake'
我在下面给出的cron语法:
* * * * * /path/to/cakeshell myjob -cli /usr/bin -console /path/to/app/Console
我已在服务器中检查过cron恶魔正常工作。但似乎蛋糕壳不起作用。
此外,如果任何人有任何参考直接通过cron运行/ controller / action而不使用shell也可以是一个解决方案。但我不知道它是否可行。