0

我正在使用 cakephp 2.x 并想在 cron 中执行一个 shell。

我将 shell 作为后台进程运行的目的是生成一个包含大量数据的 XML 文件。

我已在 .bashrc 文件中将 PATH 变量设置为 path/to/app/Console。我还在 /app/Console/cakeshell 中创建了 cakeshell 文件,并使其可执行,如 cakephp 2.x 文档中所述。我还在 /app/Console/Command/myjobShell.php 中创建了我的 shell。

这是cakeshell的代码:

#!/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 恶魔工作正常。但似乎 cakeshell 不起作用。

此外,如果有人有任何直接通过 cron 运行 /controller/action 而不使用 shell 的参考,也可能是一种解决方案。但我不知道这是否可行。

4

0 回答 0