Home > CakePHP Tips > 未分類 > cron ジョブ

cron ジョブ

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 実行内容をメールで送信しないようにしている。

参照

cron の設定ガイド

あわせて読みたい関連記事

Home > CakePHP Tips > 未分類 > cron ジョブ

検索
Feeds
メタ情報

ページの先頭へ