「Cron」の版間の差分

提供:MoodleDocs
移動先:案内検索
(Ann2014 (トーク) による編集を jun shimizu による直前の版へ差し戻しました)
 
(3人の利用者による、間の24版が非表示)
1行目: 1行目:
作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]] 2008年6月27日 (金) 11:16 (CDT)
Cronでは、定期的なMoodleモジュールの実行を支援します。例えば、すべてのディスカッションフォーラムをチェックして、フォーラムをメール購読しているユーザに対して、新しい投稿のコピーをメール送信します。
Cronでは、定期的なMoodleモジュールの実行を支援します。例えば、すべてのディスカッションフォーラムをチェックして、フォーラムをメール購読しているユーザに対して、新しい投稿のコピーをメール送信します。


すべての処理を実行するMoodleの主要なスクリプトは、adminディレクトリに置かれ、cron.phpと呼ばれます。スクリプト自体は自分で動作することができませんので、あなたはスクリプトを定期的に実行する仕組み (例 5分または10分毎) を設定する必要があります。それぞれのモジュールで定義された機能をスクリプトが実行できるよう、Cronは「心臓の鼓動 (hearbeat)」を提供します。この種の定期的なメカニズムは「Cronサービス」として知られています。サービスは、ウェブホストの一部、または異なるサーバまたはコンピュータで実行することができます。
すべての処理を実行するMoodleの主要なスクリプトは、adminディレクトリに置かれ、cron.phpと呼ばれます。スクリプト自体は自分で動作することができませんので、あなたはスクリプトを定期的 (例 5分または10分毎) に実行する仕組みを設定する必要があります。それぞれのモジュールで定義された機能をスクリプトが実行できるよう、Cronは「心臓の鼓動 (hearbeat)」を提供します。この種の定期的なメカニズムは「Cronサービス」として知られています。サービスは、ウェブホストの一部、または異なるサーバまたはコンピュータで実行することができます。


==Cronの概要==
==Cronの概要==
===スクリプトの概要===
===スクリプトの概要===


cron.phpスクリプトは、Moodleのモジュールに関する、Moodleデータベース内のmdl_modulesテーブル (デフォルトテーブル接頭辞が mdl_ と仮定して) を調べて、定期的にcron機能が実行されるようにします。そして、それぞれのモジュールディレクトリ内にあるlib.phpファイルから「モジュール名_cron」の関数を探して、実行します。また、mdl_blockテーブルを調べて、cronメソッド (オブジェクト関数) が定期的に実行されるようにします。そして、それぞれのブロックから、そのブロックに関係する新しいオブジェクトのため、cronメソッドを実行します (プログラマーではない人のため、私は詳細説明を省略しています。プログラマーは、自分で admin/cron.phpを読めますから)。これらのファイル (lib.phpファイルおよびブロックのクラスが定義されているファイル) には、クリーンアップ機能、メール機能および定期的に実行する必要な機能を組み込むことができます。例えば、「管理 > コースバックアップ」で指定された時間にコースバックアップを作成するため、cronはシステムにトリガー (きっかけ) を与えます。また、cronはメッセージモジュールまたはフォーラム投稿通知に対してトリガーを与えますが、cronの実行されるたびに、すべての機能がコールされるわけではありません。長期間ログインしていない学生の削除、古いログファイルのコピーの削除等、いくつかの機能は時々実行されるだけです。cron.phpファイルには、cron実行の1/5の割合で、これらのコアタスクをランダムに実行するためのセクションがあります。
cron.phpスクリプトは、Moodleのモジュールに関する、Moodleデータベース内のmdl_modulesテーブル (デフォルトのテーブル接頭辞が mdl_ と仮定して) を調べて、定期的にcron機能が実行されるようにします。そして、それぞれのモジュールディレクトリ内にあるlib.phpファイルから「モジュール名_cron」の関数を探して、実行します。また、mdl_blockテーブルを調べて、cronメソッド (オブジェクト関数) が定期的に実行されるようにします。そして、それぞれのブロックから、そのブロックに関係する新しいオブジェクトのため、cronメソッドを実行します (プログラマーではない人のため、私は詳細説明を省略しています。プログラマーは、自分で admin/cron.phpを読めますから)。これらのファイル (lib.phpファイルおよびブロックのクラスが定義されているファイル) には、クリーンアップ機能、メール機能および定期的に実行する必要な機能を組み込むことができます。例えば、「管理 > コースバックアップ」で指定された時間にコースバックアップを作成するため、cronはシステムにトリガー (きっかけ) を与えます。また、cronはメッセージモジュールまたはフォーラム投稿通知に対してトリガーを与えますが、cronが実行されるたび、すべての機能がコールされるわけではありません。長期間ログインしていない学生の削除、古いログファイルの削除等、いくつかの機能は時々実行されるだけです。cron.phpファイルには、cron実行の1/5の割合で、これらのコアタスクをランダムに実行するためのセクションがあります。


===Cronサービスロケーションおよびタイミング===
===Cronサービスロケーションおよびタイミング===
17行目: 15行目:
===Cronのテストおよびマニュアルトリガー===
===Cronのテストおよびマニュアルトリガー===


あなたのブラウザから直接スクリプトが動作するか、最初にテストしてください: ''<nowiki>http://example.com/moodle/admin/cron.php</nowiki>''
あなたのブラウザから直接スクリプトが動作できるか、最初にテストしてください: ''<nowiki>http://example.com/moodle/admin/cron.php</nowiki>''


あなたのMoodleにログインしているユーザから、コマンドラインでcronが実行された場合、cronを実行するため、一時的に管理者環境が作成され、そのユーザはログアウトされます。cron.phpファイルを無効にすることで、コマンドラインによるcron.php実行を停止することができます。
あなたのMoodleにログインしているユーザから、コマンドラインでcronが実行された場合、cronを実行するため、一時的に管理者環境が作成され、そのユーザはログアウトされます。cron.phpファイルを無効にすることで、コマンドラインによるcron.php実行を停止することができます。
27行目: 25行目:
WindowsシステムでMoodleのcron.phpを設定するには、異なる2つの方法があります:
WindowsシステムでMoodleのcron.phpを設定するには、異なる2つの方法があります:


*'''Moodle Cronパッケージ'''を使用する。最も簡単な方法は、Moodleに関するWindowsサービスをインストールしてくれる、この小さなパッケージ「[http://download.moodle.org/download.php/sourceforge/MoodleCron-Setup.exe MoodleCron-Setup.exe]」を使用することです。このパッケージを実行した後は、すべて忘れましょう!
*'''Moodle Cronパッケージを使用する''' 最も簡単な方法は、Moodleに関するWindowsサービスをインストールしてくれる、この小さなパッケージ「[http://download.moodle.org/download.php/sourceforge/MoodleCron-Setup.exe MoodleCron-Setup.exe]」を使用することです。このパッケージを実行した後は、すべて忘れましょう!
*'''スケジュールタスク'''を使用する。あなたがWindowsスケジューラを使用したい場合、またはmoodle-cron-for-windowsパッケージに問題がある場合、スケジュールタスクを設定することで、Windows用のwgetを使用するか、コマンドラインでphpを使用することができます。以下の手順に従ってください:
*'''スケジュールタスクを使用する''' あなたがWindowsスケジューラを使用したい場合、またはmoodle-cron-for-windowsパッケージに問題がある場合、スケジュールタスクを設定することで、Windows用のwgetを使用するか、コマンドラインでphpを使用することができます。以下の手順に従ってください:
** '''php.exe/php-win.exe (コマンドラインバイナリ)''' または '''wget''' を選択する。
** '''php.exe/php-win.exe (コマンドラインバイナリ)''' または '''wget''' を選択する。
::あなたのphpフォルダ (例. c:\php) にインストールされているphp.exeまたはphp-win.exeバイナリ (PHP version 5以降) は、cronスクリプトの動作に対して良いパフォーマンスをもたらします。
::あなたのphpフォルダ (例. c:\php) にインストールされているphp.exeまたはphp-win.exeバイナリ (PHP version 5以降) は、cronスクリプトの動作に対して良いパフォーマンスをもたらします。
36行目: 34行目:
:: - ウィザードを開始するには、「次へ (N) >」をクリックしてください。
:: - ウィザードを開始するには、「次へ (N) >」をクリックしてください。
:: - 「参照 (R) ...」ボタンをクリックして、 c:\php\php.exe または c:\windows\wget.exe を選択した後、「開く (O)」をクリックしてください。
:: - 「参照 (R) ...」ボタンをクリックして、 c:\php\php.exe または c:\windows\wget.exe を選択した後、「開く (O)」をクリックしてください。
:: - タスク名に「Moodle Cron」と入力した後、タスクの実行に「日単位 (D)」を選択した後、「次へ (N) > 」をクリックしてください。
:: - タスク名に「Moodle Cron」と入力して、タスクの実行に「日単位 (D)」を選択した後、「次へ (N) > 」をクリックしてください。
:: - 開始時刻に「12:00」を選択して、このタスクの実行に「毎日 (A)」を選択してください。開始日に今日の日付を選択した後、「次へ (N) > 」をクリックしてください。
:: - 開始時刻で「12:00」を選択して、このタスクの実行に「毎日 (A)」を選択してください。開始日に今日の日付を選択した後、「次へ (N) > 」をクリックしてください。
:: - タスクを実行するユーザ名およびパスワードを入力してください (管理者権限を持つアカウントである必要はありません)。パスワードを正しく入力したことを確認して、「次へ (N) > 」をクリックしてください。
:: - タスクを実行するユーザ名およびパスワードを入力してください (管理者権限を持つアカウントである必要はありません)。パスワードを正しく入力したことを確認して、「次へ (N) > 」をクリックしてください。
:: - 「[完了]をクリックしたときに詳細プロパティを開く (A)」をチェックして、「完了」ボタンをクリックしてください。
:: - 「[完了]をクリックしたときに詳細プロパティを開く (A)」をチェックして、「完了」ボタンをクリックしてください。
44行目: 42行目:
:: - 「タスクを繰り返し実行 (R)」チェックボックスをチェックして、「間隔 (V)」に5分、「継続期間 (D)」に23時間59分を設定してください。
:: - 「タスクを繰り返し実行 (R)」チェックボックスをチェックして、「間隔 (V)」に5分、「継続期間 (D)」に23時間59分を設定してください。
:: - 「OK」ボタンを2回クリックして、完了です。
:: - 「OK」ボタンを2回クリックして、完了です。
* '''あなたのスケジュールタスクをテストする''' 登録したタスクにマウスポインタを合わせて右クリック、「タスクの実行 (U)」をクリックすることで、あなたはスケジュールタスクが正常に動作するかどうか確認することができます。すべてが正常にセットアップされている場合、wget/php実行中、一時的にDOSコマンドウィンドウが表示された後、DOSコマンドウィンドウが消えます。タスクフォルダをリフレッシュすることで、現在の時間を反映した「前回の実行時間」 (詳細 (D) フォルダ表示) が表示され、「前回の結果」カラムには「0x0」 (すべてOK) が表示されます。どちらかの表示が異なる場合、あなたのセットアップ内容を再度確認してください。
* '''あなたのスケジュールタスクをテストする''' 登録したタスクにマウスポインタを合わせて右クリック、「タスクの実行 (U)」をクリックすることで、あなたはスケジュールタスクが正常に動作するかどうか確認することができます。すべてが正常にセットアップされている場合、wget/php実行中、一時的にDOSウィンドウが表示された後、消えます。タスクフォルダをリフレッシュすることで、現在の時間を反映した「前回の実行時間」 (詳細 (D) フォルダ表示) が表示され、「前回の結果」カラムには「0x0」 (すべてOK) が表示されます。どちらかの表示が異なる場合、あなたのセットアップ内容を再度確認してください。
* '''cronアウトプットを記録する''' cronジョブがエラーを出している場合、バックアップが完了しない場合、ユーザのフォーラム購読メールが遅延する場合、cronスクリプトの実行時のアウトプットを記録してください。cronアウトプットを記録するためには、コマンドがphp.exeを使用し、アウトプットがファイル (例 c:\moodle\admin\cron.log) に記録されるよう合わせてください。以下、php.exeコマンドの例です:
* '''cronアウトプットを記録する''' cronジョブがエラーを出している場合、バックアップが完了しない場合、ユーザのフォーラム購読メールが遅延する場合、cronスクリプトの実行時のアウトプットを記録してください。cronアウトプットを記録するためには、コマンドがphp.exeを使用し、アウトプットがファイル (例 c:\moodle\admin\cron.log) に記録されるよう合わせてください。以下、php.exeコマンドの例です:
<pre>c:\php\php.exe -f c:\moodle\admin\cron.php > c:\moodle\admin\cron.log</pre>
<pre>c:\php\php.exe -f c:\moodle\admin\cron.php > c:\moodle\admin\cron.log</pre>
81行目: 79行目:


もうひとつの方法、あなたにサーバでwgetコマンドを実行するパーミッションがない場合、curlコマンドを使用することができます。
もうひとつの方法、あなたにサーバでwgetコマンドを実行するパーミッションがない場合、curlコマンドを使用することができます。
'''Note:moodle 2.0以降、コマンドラインで実行するcron.phpのパスが変更されました。コマンドラインで実行する場合のパスは/admin/cli/cron.phpとなります。'''


例えば:
例えば:
96行目: 96行目:
この例では、アウトプットは (/dev/null に) 破棄されます。
この例では、アウトプットは (/dev/null に) 破棄されます。


多くのMoodleユーザにより、「wget」が時々動作不良を起こすと報告されています。特にフォーラムから毎日メール要約がすべてのユーザに送信されない場合、代わりのコマンドが問題を解決します:
多くのMoodleユーザにより、「wget」が時々動作不良を起こすと報告されています。特にフォーラムから毎日メール要約がすべてのユーザに送信されない場合、代わりのコマンドで問題を解決することができます。


  php <nowiki>http://example.com/moodle/admin/cron.php</nowiki>
  php <nowiki>http://example.com/moodle/admin/cron.php</nowiki>
112行目: 112行目:
===Unixのcrontabプログラムを使用する===
===Unixのcrontabプログラムを使用する===


Cpanelでは、crontabとして知れられているUnixユーティリティにウェブインターフェースを提供します。あなたがコマンドラインを使用できる場合、コマンドを使用して、自分でcrontabを設定することができます。
Cpanelでは、crontabとして知れられているUnixユーティリティのウェブインターフェースを提供します。あなたがコマンドラインを使用できる場合、コマンドを使用して、自分でcrontabを設定することができます。


  crontab -e
  crontab -e


そして、上記コマンドラインのひとつを次のように追加します:
そして、前述「Cron Jobs -> Advanced (Unix style)」の内容を次のように追加します:


  */30 * * * * wget -q -O /dev/null <nowiki>http://example.com/moodle/admin/cron.php</nowiki>
  */30 * * * * wget -q -O /dev/null <nowiki>http://www.mydomain.com/moodle/admin/cron.php</nowiki>


最初の5つのエントリは、それに続くコマンドを実行するための時間の値です。アスタリスク (*) は、常時を意味するワイルドカードです。上記例では、コマンド「wget -q -O /dev/null...」を30分毎 (*/30)、毎時 (*)、毎日 (*)、毎月 (*)、すべての曜日 (*) に実行します。
最初の5つのエントリは、それに続くコマンドを実行するための時間の値です。アスタリスク (*) は、常時を意味するワイルドカードです。上記例では、コマンド「wget -q -O /dev/null...」を30分毎 (*/30)、毎時 (*)、毎日 (*)、毎月 (*)、すべての曜日 (*) に実行します。


The "O" of "-O" is the capital letter not zero, and refers the output file destination, in this case "/dev/null" which is a black hole and discards the output. If you want to see the output of your cron.php then enter its url in your browser.  
-O」の「O」は、ゼロではなく、アウトプット先を示す大文字のO (オー) です。この例の場合、アウトプットを破棄するブラックホール「dev/null」をアウトプット先としています。あなたがcron.phpのアウトプットを表示したい場合、ブラウザにURIを直接入力してください。


* [http://linuxweblog.com/node/24 A basic crontab tutorial]  
* [http://linuxweblog.com/node/24 A basic crontab tutorial] - 英語
* [http://www.freebsd.org/cgi/man.cgi?query=crontab&apropos=0&sektion=5&manpath=FreeBSD+6.0-RELEASE+and+Ports&format=html Online version of the man page]  
* [http://www.freebsd.org/cgi/man.cgi?query=crontab&apropos=0&sektion=5&manpath=FreeBSD+6.0-RELEASE+and+Ports&format=html Online version of the man page] - 英語


For '''beginners''', "EDITOR=nano crontab -e" will allow you to edit the crontab using the [http://www.nano-editor.org/dist/v1.2/faq.html nano] editor. Ubuntu defaults to using the nano editor.
あなたが「初心者」の場合、「EDITOR=nano crontab -e」コマンドにより、[http://www.nano-editor.org/dist/v1.2/faq.html nano]エディタを使用して、crontabを編集することができます。Ubuntuでは、nanoエディタをデフォルトのエディタとしています。


Usually, the "crontab -e" command will put you into the 'vi' editor. You enter "insert mode" by pressing "i", then type in the line as above, then exit insert mode by pressing ESC. You save and exit by typing ":wq", or quit without saving using ":q!" (without the quotes). Here is an [http://www.unix-manuals.com/tutorials/vi/vi-in-10-1.html intro] to the 'vi' editor.
通常、「crontab -e」コマンドでは、viエディタが起動されます。「i」キーを押すことで、挿入モードに入ります。前述のコマンドラインを入力して、ESCキーを押すことで、挿入モードから抜けます。「wq」とタイプすることで、あなたは内容を保存して、viエディタを終了させることができます。または、「q!」とタイプすることで、内容を保存せずに、viエディタを終了させることができます。viエディタに関する[http://www.unix-manuals.com/tutorials/vi/vi-in-10-1.html イントロダクション (英語) は、こちらをご覧ください]


==関連情報==
==関連情報==


Using Moodle forum discussions:
Using Moodleフォーラムディスカッション (英語):
*[http://moodle.org/mod/forum/discuss.php?d=41827 Cron - can someone give me a quick confirmation of function?]
*[http://moodle.org/mod/forum/discuss.php?d=41827 Cron - can someone give me a quick confirmation of function?]
*[http://moodle.org/mod/forum/discuss.php?d=97684 Cronjob Question]
*[http://moodle.org/mod/forum/discuss.php?d=97684 Cronjob Question]

2016年3月9日 (水) 15:01時点における最新版

Cronでは、定期的なMoodleモジュールの実行を支援します。例えば、すべてのディスカッションフォーラムをチェックして、フォーラムをメール購読しているユーザに対して、新しい投稿のコピーをメール送信します。

すべての処理を実行するMoodleの主要なスクリプトは、adminディレクトリに置かれ、cron.phpと呼ばれます。スクリプト自体は自分で動作することができませんので、あなたはスクリプトを定期的 (例 5分または10分毎) に実行する仕組みを設定する必要があります。それぞれのモジュールで定義された機能をスクリプトが実行できるよう、Cronは「心臓の鼓動 (hearbeat)」を提供します。この種の定期的なメカニズムは「Cronサービス」として知られています。サービスは、ウェブホストの一部、または異なるサーバまたはコンピュータで実行することができます。

Cronの概要

スクリプトの概要

cron.phpスクリプトは、Moodleのモジュールに関する、Moodleデータベース内のmdl_modulesテーブル (デフォルトのテーブル接頭辞が mdl_ と仮定して) を調べて、定期的にcron機能が実行されるようにします。そして、それぞれのモジュールディレクトリ内にあるlib.phpファイルから「モジュール名_cron」の関数を探して、実行します。また、mdl_blockテーブルを調べて、cronメソッド (オブジェクト関数) が定期的に実行されるようにします。そして、それぞれのブロックから、そのブロックに関係する新しいオブジェクトのため、cronメソッドを実行します (プログラマーではない人のため、私は詳細説明を省略しています。プログラマーは、自分で admin/cron.phpを読めますから)。これらのファイル (lib.phpファイルおよびブロックのクラスが定義されているファイル) には、クリーンアップ機能、メール機能および定期的に実行する必要な機能を組み込むことができます。例えば、「管理 > コースバックアップ」で指定された時間にコースバックアップを作成するため、cronはシステムにトリガー (きっかけ) を与えます。また、cronはメッセージモジュールまたはフォーラム投稿通知に対してトリガーを与えますが、cronが実行されるたび、すべての機能がコールされるわけではありません。長期間ログインしていない学生の削除、古いログファイルの削除等、いくつかの機能は時々実行されるだけです。cron.phpファイルには、cron実行の1/5の割合で、これらのコアタスクをランダムに実行するためのセクションがあります。

Cronサービスロケーションおよびタイミング

cronを実行するコンピュータは、 Moodleが動作しているコンピュータと同じである必要はありません。例えば、あなたがcronを動作できないような、サービスを制限したウェブホスティングサービスを利用している場合、他のサーバまたはあなたの自宅のコンピュータでcronを実行させることができます。大切なことは、cron.phpが定期的に実行されることだけです。

このスクリプトのロードは、それほど高くありません。ですから、5分毎に動作させるのが適切です。あなたが5分毎のcron.phpの動作に心配な場合、15分毎または30分毎に動作間隔を延ばすこともできます。メール送信の遅れにより、コース内の活動をスローダウンしてしまうこともありますので、cron.phpの動作間隔を伸ばしすぎない方が良いでしょう。cron.phpによるメール送信は、「サイト管理 > セキュリティ > サイトポリシー」の「投稿を編集できる最大時間」に影響されることを記憶に留めてください。

Cronのテストおよびマニュアルトリガー

あなたのブラウザから直接スクリプトが動作できるか、最初にテストしてください: http://example.com/moodle/admin/cron.php

あなたのMoodleにログインしているユーザから、コマンドラインでcronが実行された場合、cronを実行するため、一時的に管理者環境が作成され、そのユーザはログアウトされます。cron.phpファイルを無効にすることで、コマンドラインによるcron.php実行を停止することができます。

cron.phpを無効にした場合、自動的かつ定期的にcron.phpが実行される環境を設定する必要があります。

WindowsシステムのCron管理

WindowsシステムでMoodleのcron.phpを設定するには、異なる2つの方法があります:

  • Moodle Cronパッケージを使用する 最も簡単な方法は、Moodleに関するWindowsサービスをインストールしてくれる、この小さなパッケージ「MoodleCron-Setup.exe」を使用することです。このパッケージを実行した後は、すべて忘れましょう!
  • スケジュールタスクを使用する あなたがWindowsスケジューラを使用したい場合、またはmoodle-cron-for-windowsパッケージに問題がある場合、スケジュールタスクを設定することで、Windows用のwgetを使用するか、コマンドラインでphpを使用することができます。以下の手順に従ってください:
    • php.exe/php-win.exe (コマンドラインバイナリ) または wget を選択する。
あなたのphpフォルダ (例. c:\php) にインストールされているphp.exeまたはphp-win.exeバイナリ (PHP version 5以降) は、cronスクリプトの動作に対して良いパフォーマンスをもたらします。
あなたがwgetを使用したい場合、Windows用wgetのコンパイル済みバージョンを、オリジナルのGNU Win32 ports (http://unxutils.sourceforge.net/)、Heiko Herold's windows wget spot (http://xoomer.virgilio.it/hherold/) または Bart Puype氏のWGET for Windows (win32) ページ (http://users.ugent.be/~bpuype/wget/) からダウンロードしてください。あなたがHeiko Herold氏のパッケージを使用している場合、すべてのDLLファイルを「C:\Windows\system32」ディレクトリにコピーしてください。そして、wget.exeファイルを「c:\windows」ディレクトリにコピーしてください (このことにより、wgetを常にサーチパスに置きます)。
  • Scheduled Task を設定する。
- 「スタート >> コントロールパネル >> タスク >> コントロールされたタスクの追加」へ移動してください。
- ウィザードを開始するには、「次へ (N) >」をクリックしてください。
- 「参照 (R) ...」ボタンをクリックして、 c:\php\php.exe または c:\windows\wget.exe を選択した後、「開く (O)」をクリックしてください。
- タスク名に「Moodle Cron」と入力して、タスクの実行に「日単位 (D)」を選択した後、「次へ (N) > 」をクリックしてください。
- 開始時刻で「12:00」を選択して、このタスクの実行に「毎日 (A)」を選択してください。開始日に今日の日付を選択した後、「次へ (N) > 」をクリックしてください。
- タスクを実行するユーザ名およびパスワードを入力してください (管理者権限を持つアカウントである必要はありません)。パスワードを正しく入力したことを確認して、「次へ (N) > 」をクリックしてください。
- 「[完了]をクリックしたときに詳細プロパティを開く (A)」をチェックして、「完了」ボタンをクリックしてください。
- 「スタート >> ファイル名を指定して実行 (R) ...」を選択した後、テキストボックスに次のコマンドを入力してください:
c:\windows\wget.exe -q -O NUL http://my.moodle.site/moodle/admin/cron.php
または
c:\php\php-win.exe -f c:\moodle\admin\cron.php
あなたのMoodleディレクトリと「c:\moodle」を入れ替えるか、あなたのサイト名「my.moode.site」を入力してください。

- 「スケジュール」タブをクリックして、「詳細設定 (V) ...」ボタンをクリックしてください。
- 「タスクを繰り返し実行 (R)」チェックボックスをチェックして、「間隔 (V)」に5分、「継続期間 (D)」に23時間59分を設定してください。
- 「OK」ボタンを2回クリックして、完了です。
  • あなたのスケジュールタスクをテストする 登録したタスクにマウスポインタを合わせて右クリック、「タスクの実行 (U)」をクリックすることで、あなたはスケジュールタスクが正常に動作するかどうか確認することができます。すべてが正常にセットアップされている場合、wget/php実行中、一時的にDOSウィンドウが表示された後、消えます。タスクフォルダをリフレッシュすることで、現在の時間を反映した「前回の実行時間」 (詳細 (D) フォルダ表示) が表示され、「前回の結果」カラムには「0x0」 (すべてOK) が表示されます。どちらかの表示が異なる場合、あなたのセットアップ内容を再度確認してください。
  • cronアウトプットを記録する cronジョブがエラーを出している場合、バックアップが完了しない場合、ユーザのフォーラム購読メールが遅延する場合、cronスクリプトの実行時のアウトプットを記録してください。cronアウトプットを記録するためには、コマンドがphp.exeを使用し、アウトプットがファイル (例 c:\moodle\admin\cron.log) に記録されるよう合わせてください。以下、php.exeコマンドの例です:
c:\php\php.exe -f c:\moodle\admin\cron.php > c:\moodle\admin\cron.log

ウェブホスティングサービスのCron管理

ウェブホスティングでは、多くの場合、ウェブベースのコントロールパネルでcronサービスを設定することができます。

CPanelのCronサービス

あなたがcPanelを使用している場合、ログイン後、ページ下部の「Advanced」を確認してください。そして、「Cron Jobs -> Advanced (Unix style)」をクリックします。 cronが30分ごとに動作するよう、以下の内容を入力してください。

Email address for output: emailaddress@mydomain.con
Minute:*/30
Hour:*
Day:*
Month:*
Weekday:* 
Command: wget -q -O /dev/null http://www.mydomain.com/moodle/admin/cron.php

「Commit Changes」をクリックしてください。あなたのメールに送信されるcronの動作状況を確認してください。 Cpanel-cron-setup.JPG

他のシステムのCronサービス

他のシステムでは、「Cron jobs」のようなボタンを探してください。そこでは、以下のUnixコマンドと同じようなコマンドを設定することができます。


あなたにサーバでwgetコマンドを実行するパーミッションがない場合、このphpコマンドを使用することができます:

/usr/local/bin/php -q /real/path/to/script/admin/cron.php

例えば:

/usr/local/bin/php -q /home/username/public_html/moodle/admin/cron.php

あなたのMoodleフォルダへの実パスが分からない場合、PHPの「realpath() 関数」を使用することができます。

もうひとつの方法、あなたにサーバでwgetコマンドを実行するパーミッションがない場合、curlコマンドを使用することができます。

Note:moodle 2.0以降、コマンドラインで実行するcron.phpのパスが変更されました。コマンドラインで実行する場合のパスは/admin/cli/cron.phpとなります。

例えば:

curl --silent --compressed http://mydomain.com/moodle/admin/cron.php

UnixのコマンドラインでCronを使用する

あなたがコマンドラインからページをコールするため、異なるコマンドラインプログラムがあります。サーバにより、実行できないプログラムもあります。

例えば、あなたは「wget」のようなUnixユーティリティを使用することができます:

wget -q -O /dev/null http://example.com/moodle/admin/cron.php

この例では、アウトプットは (/dev/null に) 破棄されます。

多くのMoodleユーザにより、「wget」が時々動作不良を起こすと報告されています。特にフォーラムから毎日メール要約がすべてのユーザに送信されない場合、代わりのコマンドで問題を解決することができます。

php http://example.com/moodle/admin/cron.php

同じくlynxを使用すると:

lynx -dump http://example.com/moodle/admin/cron.php > /dev/null

この例では、アウトプットは (/dev/null に) 破棄されます。

代わりにコマンドラインで実行するようコンパイルされた、スタンドアロンバージョンのPHPを使用することもできます。このPHPを使用するメリットは、あなたのウェブサーバのログがcron.phpの連続したリクエストで一杯にならないことです。このPHPを使用するデメリットは、コマンドラインバージョンのPHPにアクセスしなければならないことです。

/opt/bin/php /web/moodle/admin/cron.php

Unixのcrontabプログラムを使用する

Cpanelでは、crontabとして知れられているUnixユーティリティのウェブインターフェースを提供します。あなたがコマンドラインを使用できる場合、コマンドを使用して、自分でcrontabを設定することができます。

crontab -e

そして、前述「Cron Jobs -> Advanced (Unix style)」の内容を次のように追加します:

*/30 * * * * wget -q -O /dev/null http://www.mydomain.com/moodle/admin/cron.php

最初の5つのエントリは、それに続くコマンドを実行するための時間の値です。アスタリスク (*) は、常時を意味するワイルドカードです。上記例では、コマンド「wget -q -O /dev/null...」を30分毎 (*/30)、毎時 (*)、毎日 (*)、毎月 (*)、すべての曜日 (*) に実行します。

「-O」の「O」は、ゼロではなく、アウトプット先を示す大文字のO (オー) です。この例の場合、アウトプットを破棄するブラックホール「dev/null」をアウトプット先としています。あなたがcron.phpのアウトプットを表示したい場合、ブラウザにURIを直接入力してください。

あなたが「初心者」の場合、「EDITOR=nano crontab -e」コマンドにより、nanoエディタを使用して、crontabを編集することができます。Ubuntuでは、nanoエディタをデフォルトのエディタとしています。

通常、「crontab -e」コマンドでは、viエディタが起動されます。「i」キーを押すことで、挿入モードに入ります。前述のコマンドラインを入力して、ESCキーを押すことで、挿入モードから抜けます。「wq」とタイプすることで、あなたは内容を保存して、viエディタを終了させることができます。または、「q!」とタイプすることで、内容を保存せずに、viエディタを終了させることができます。viエディタに関するイントロダクション (英語) は、こちらをご覧ください

関連情報

Using Moodleフォーラムディスカッション (英語):