cron タスクの設定

Drupal icon

はじめに

Drupal では、定期的な処理が必要なタスクがいくつかあり、その代表的なものとして、監視ログの定期的な削除や、コンテンツ更新を通知する Ping の送信などが挙げられます。
Drupal では、これらの処理のために cron.php という PHP ファイルが用意され、このファイルに定期的にアクセスすることで定期処理が実現されます。



crontab の設定

一般的な unix 系(linux/BSD)のサーバであれば、標準で cron デーモンが起動していると思います。
その場合は、Drupal のアーカイブに同梱されている scripts/cron-curl.sh や、scripts/cron-lynx.sh を適当なディレクトリにコピーし、ファイル内に書かれた http://example.com/cron.php を自身のサーバの cron.php へのパスに書き換え、それを定期実行するように crontab -e で crontab を設定してください。
なお、それぞれのスクリプト内では、curllynx が必要となります。 これらは標準でインストールされているとは限りませんので、以下のサイトや、自身が使用している OS のサイトを参考にインストールしてください。

さて、crontab の設定方法ですが、これについては先人が数多くのドキュメントを書いておられるので、今更ここで説明することもないでしょう。
どうぞ、Google で cron 設定 を検索して、もっとも自身に適したドキュメントを読み、適宜設定してください。

また、ホスティングサービスを利用している場合は、プロバイダが提供するヘルプページなどを読み、同様に適宜設定してください。


cron ログの確認

正常に crontab が設定され、cron.php が実行されているかどうかは、

管理セクション >> ログ >> 最近のログ項目 (admin/logs/watchdog)

にアクセスすることで確認することができます。

  • 以下の画面は、「メッセージのタイプによる絞り込み」の「cronのメッセージ」でフィルタしています。

    cronログ


以上は、サーバで crontab が利用できる場合の説明でした。
しかし、多くの方が利用されているであろう国内のホスティングサービスでは、crontab が利用できないケースも少なくありません。
そのような方のために「cron タスクの設定 【 webcron の利用】」では、別の方法を使った cron タスクを説明します。