Windows OSでのCron

WindowsオペレーティングシステムでMoodle Cronプロセストリガを作成する方法は2つあります。

ムードルcronパッケージ

Moodle Cronパッケージを使用してください。最も簡単な方法は、この小さなパッケージMoodleCron-Setup.exeを使用することです。これにより、小さなWindowsサービスをインストールすることで、このことが非常に簡単になります。実行して忘れてください。 :-)

wgetまたはphpスケジュールタスク

組み込みのWindowsスケジューラを使用したい場合、またはmoodle-cron-for-windowsパッケージで問題がある場合は、コマンドラインからwget for windowsまたはphpを使用してスケジュールタスクを設定できます。次の手順に従ってください。

    • php.exe / php-win.exe(コマンドラインバイナリ)またはwgetを選択してください。
php.exeまたはphp-win.exeバイナリ(PHPバージョン5以降用)がphpフォルダ(c:\ phpなど)にインストールされていると、cronスクリプトを実行したときのパフォーマンスが向上します。
wgetを使用したい場合は、Heiko Heroldによるwget for windowsページ( http://xoomer.virgilio )から、ネイティブのGNU Win32ポート( https://unxutils.sourceforge.net/ )から、コンパイル済みのwget for windowsをダウンロードしてください。それは/ hherold / )またはWindows用Bart Puypeのwgetページ( https://users.ugent.be/~bpuype/wget/ )です。 Heiko Heroldのパッケージを使用する場合は、すべての.DLLファイルをC:\ Windows \ system32ディレクトリにコピーしてください。 wget.exeファイルをc:\ windowsにコピーします(これにより、wgetが常に検索パスに含まれるようになります)。
  • スケジュールされたタスクを設定します。
- スタート>>コントロールパネル>>スケジュールされたタスク>>スケジュールされたタスクを追加の順に選択します。
- [次へ]をクリックしてウィザードを起動します。
- [参照]ボタンをクリックしてc:\ php \ php.exeまたはc:\ windows \ wget.exeに移動し、[開く]をクリックします。
- タスクの名前として「Moodle Cron」と入力し、スケジュールとして「Daily」を選択します。 「次へ」をクリックしてください。
- 開始時刻として[12:00 AM]を選択し、[毎日]タスクを実行して開始日として今日の日付を選択します。 「次へ」をクリックしてください。
- タスクを実行するユーザーのユーザー名とパスワードを入力します(特権アカウントである必要はまったくありません)。パスワードを正しく入力してください。 「次へ」をクリックしてください。
- [完了をクリックしたらこのタスクの詳細プロパティを開く]というタイトルのチェックボックスをオンにして、[完了]をクリックします。
- 新しいダイアログボックスで、[ファイル名を指定して実行]テキストボックスに次のように入力します。
c:\windows\wget.exe -q -O NUL https://my.moodle.site/moodle/admin/cron.php
または
c:\php\php-win.exe -f c:\moodle\admin\cli\cron.php
"c:\ moodle"をあなたのmoodleディレクトリへのパスに、または "my.moode.site"をあなたのサイトの名前に置き換えてください。

- [スケジュール]タブをクリックし、[詳細...]ボタンをクリックします。
- [タスクの繰り返し]チェックボックスをオンにして、[毎:]を5分に設定し、[終了日]を[期間]に設定して、「23」時間と「59」分を入力します。
- [OK]をクリックすると完了です。

注: wgetバージョンを使用している場合は、 Cron設定をチェックして、「Webベースの」cronサービスが許可されていることを確認してください。

  • スケジュールされたタスクをテストしてください 。あなたはあなたのスケジュールされたタスクが正しく実行されることをテストすることができますそれを右のボタンでクリックして「実行」を選択してください。すべて正しく設定されていれば、wget / phpを実行してcronページを取得している間、DOSコマンドウィンドウが少しの間表示され、その後消えます。スケジュールタスクフォルダを更新すると、(詳細フォルダビューの) Last Run Time列に現在の時刻が反映され、Last Result列に「0x0」と表示されます(すべて問題ありません)。どちらかが違う場合は、設定を再確認してください。
  • ロギングcron出力 。ジョブがエラーを生成している、バックアップが完了していない、またはユーザーがフォーラムEメールの受信に遅れを見せている場合は、実行時に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.phpの出力をテキストファイルに記録するときに問題が発生した場合は、Cronの出力を記録する別の方法について、IñakiArenazaのこのメッセージを読んでください。

もう1つの方法は、すべての作業を実行する小さなバッチファイルをサーバー上に作成し、そのファイルを呼び出すスケジュールされたタスクを取得することです。これは、cronの出力をファイルに保存し、5日以上経過したログファイルを削除するバッチファイルの例です。

@echo off
set phppath="C:\Program Files (x86)\PHP\v5.3\php.exe"
set cronpath="C:\moodle\moodle-test\wwwroot\admin\cli\cron.php"
set logpath="D:\moodle\moodle-test\cronlogs"

%phppath% -f %cronpath% >> %logpath%\%date:~10,4%%date:~4,2%%date:~7,2%.log

Forfiles /P %logpath% /S /M *.log /D -5 /C "cmd /c del /q @path"

= Windows 10 / Xampp環境ではCron

XamppでCronタスクを設定することはタスクスケジューラを使用して機能します。 wgetやMoodleCronを使用することは困難で不確実です。以下の行を使用してください。

c:\php\php.exe -f c:\moodle\admin\cron.php > c:\moodle\admin\cron.log

[アクション]ダイアログで、タイミングを正しく設定してください。