cron ジョブを実行したい場合の方法
http://www.exsample.com/controller/action の処理を cron で実行する場合の例を記述する。
Shell クラス(Cake コマンド)を利用した cron ジョブを実行する場合は下記を参照。
Shell クラスを利用した cron ジョブ
文中で使用する PATH は下記の通り定義するものとする。
※[VENDERS] は CAKE_CORE_INCLUDE_PATH/vendors
※[APP] は ROOT/APP_DIR
cron.sh を作成
[VENDORS]/shells/ 配下に cron.sh を作成
cron.sh の内容は下記の通り。
#! /bin/sh /usr/bin/php $1
※/usr/bin/php は PHP 実行可能ファイルの場所 (大部分の Linux システムでは、/usr/bin/php か /usr/local/bin/php)。よくわからない場合には、コマンド which php で調査。
controller_action.php の作成
[APP]/vendors/shells/cron/ 配下に controller_action.php を作成
controller_action.php の内容は下記の通り。
<?php $_GET['url'] = "controller/action"; require_once dirname(dirname(dirname(dirname(__FILE__)))) . "/index.php";
cron ジョブの設定
cron ジョブの設定は /etc/crontab に下記の通り記述する。
分 時 日 月 曜日 ユーザ コマンド
毎時1分に cron を実行する例
01 * * * * root sh [VENDORS]/shells/cron.sh [APP]/vendors/shells/cron/controller_action.php
XREA で設定する場合
管理画面のCRONジョブで設定
分 時 日 月 曜日 1 * * * * [VENDORS]/shells/cron.sh ~/[APP]/vendors/shells/cron/controller_action.php >/dev/null 2>&1
※ここで [VENDORS] および [APP] は /virtual/[アカウント名]/ は含まない。
※>/dev/null 2>&1 は cron 実行内容をメールで送信しないようにしている。