コマンドの書き方はいろいろあると思いますが、以下が一番簡単そう。
cd appまでのフルパス; /usr/local/bin/php appまでのフルパス/Console/cake.php シェル名 (必要に応じてクラス名)
・フルパスが面倒でも2回書かないと動かない
・シェル名はShellを取った前半を全て小文字でおk
SampleShellならsample
・クラス名は記述なしでシェル内のfunction main()を実行
main以外を実行したければ適宜記述を追加する
・末尾に 1> /dev/null を追加すればエラー時のメール送信をしない
とまあこういう感じですが、分かりにくいので具体的には以下の感じ。
cd /home/your_account/www/hoge/app; /usr/local/bin/php /home/your_account/www/hoge/app/Console/cake.php sample
これでも分からない時は高確率でコマンドの書き方以前で躓いています。
特にDB設定を開発環境と本番環境で分けてる場合とか。
if (env('SERVER_ADDR') !== '127.0.0.1') {
//本番環境の記述
} else {
//開発環境の記述
}
これだとクーロンではサーバ情報を取得しないのでDBに繋げない。てか自分はここでハマった…
if (strpos(dirname(__FILE__), 'your_account') === false) {
//開発環境の記述
} else {
//本番環境の記述
}
みたいにして階層のディレクトリ名で分岐すればおk
あとは実行するシェルファイルのパーミッション変更も忘れずに。