1. 定期的なコマンドの実行を管理する cron
XREA において、定期的にスクリプトを実行したい。そのためには、cron の設定を行う必要がある。
cron とは、crontab – Wikipedia によると、
crontab
コマンドはUnix系OSにおいて、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。
2. XREA における cron の設定
「XREAサーバーのCRONTAB設定とシェルスクリプト記述方法を教えて下さい - 教えて!goo」によると、
XREA管理画面でのCRON設定で直接perlを動かすことは
できません。
そこには、まずshellを指定します。
例えば、/virtual/xxxxx/cron-1.sh
中身は
-----------------------------------------------
#!/bin/sh
#PERL
/usr/local/bin/perl /virtual/xxxxx/mi_mlpost.pl
exit
-----------------------------------------------
このようにshellからperlのプログラムを動かします。
つまり、設定する内容は、
- XXXXX.sh に「定期的に実行したいスクリプト」を、shell から実行するファイルを作成。
- crontab の設定。
3. 例
例えば、Drupal の cron.php を、定期的に実行したいとする。
- 運用しているのは、XXXXX.xrea.jp というサブドメイン。
- 定期的に実行したいのは /public_html/XXXXX.xrea.jp/cron.php ファイル。
4. shell の記述とアップロード
まず、 cron の設定をするページにある「シェルスクリプトの例」をコピーし、エディタで以下のように記述。実行したいのは PHP ファイルなので、PHP のところだけを利用。
#!/bin/sh #PHP /usr/local/bin/php /virtual/ユーザ名/public_html/XXXXX.xrea.jp/cron.php exit
「※ 改行コードは必ず「LF」で指定して下さい。」とあるので、間違わないように保存。ファイル名は適当に cron1.sh とした。
これを FTP で `/’ 直下に置いた。
5. cronジョブズの設定
「cron ジョブズの例」として、1 時間ごとに実行する方法が、以下のように書かれている。
○毎時0分に/virtual/ユーザ名/cron1.shを実行する
0 * * * * cron1.sh
上記の通り実行されるようにするには、`分’ フィールドに `0’ を入力、残りのフィールドには `*’ が入っているのを確認して保存。
後は、cron が実行されるとメールが届くので、実行されたか確認する。
6. cron のテストについて
crontab – Wikipedia によると、
テストの際には、少なくとも2分以上先の時刻を実行時刻として指定する必要がある。これはcrontabファイルの再読み込みは、編集後の次の分時にのみ行われるためである。