XREA/CORESERVERにはCRONという機能が備わっています。
CRONとは、定期的にプログラムを自動実行してくれる機能です。
早速、試しに、このCRONをCORESERVERに設置してみましょう。
【ここでのCRONの目的】
サーバーのCRONを設定して、実際にどのように動くのか簡単なサンプルを使って実験してみます。
サンプルの内容は、cron起動ファイル cron.sh を起動して、実行ファイル cron1.php で毎時、時刻を取得し、その結果をcron2.php に書き出すという単純なものです。
【ファイル構成例】
- cron.sh (705) ルートディレクトリに設置(一番上の階層)
- cron1.php (705) public_htmlディレクトリ内に設置
- cron2.php (606) public_htmlディレクトリ内に設置
カッコ内の数字はファイルのパーミッションです。cron2.php に結果を書き出すので、このファイルは606としておきます。
cron.shの拡張子 .sh は見慣れないかもしれませんが、シェルスクリプトの先頭shをさしていると思われます。cronの起動にはこの.shファイルが必要です。ここでは、phpファイルで実行するのですが、phpでなくてもよく、Perl,Rubyなどのスクリプトでも可能です。
それでは、各スクリプトの中身を記述します。
【スクリプトの中身】
cron.sh
#!/bin/sh #PHP /usr/local/bin/php /virtual/account/public_html/cron1.php exit
accountには、XREA/CORESERVERの自分のアカウントを入れます。そして、実行するファイルが、public_html/cron1.phpなので、そこまでのパスを記述します。たったの4行だけです。
※ 改行コードは必ず「LF」で指定。
cron1.php
<?php
# 出力先ファイル名を設定します。
$fileName = 'cron2.php';
// 書き込む文字列
$string = date('Y年m月d日 H時i分s秒');
$string .= '<br>';
# データを書き込みます。
file_put_contents($fileName, $string, FILE_APPEND );
?>
まず、出力先であるcron2.phpを、$fileNameに代入しています。続けて、date関数で年月日と時刻を取得して$stringに代入。その後改行のための<br>も追加で代入しています。そして、file_put_contents 関数でcron2.php に追加書き加えしていきます。
cron2.php
//このファイルに時刻を自動的に書き込みます。 //文字列testとでも書いておいてください。空でもOK。 test
cron2.phpはcron1.phpの結果を受けるものなので、空でもかまいません。
おさらいすると、cron.sh で、CRONを起動して、cron1.php でプログラムを自動実行。そして、その結果を cron2.php に書き込むいうものです。
【CRONジョブの設定】
ファイルを設置したら、XREA/CORESERVERの管理画面からCRONジョブを選びCRONの設定をしてみましょう。
CRON設定画面の一番上の設定0の枠に設定していきます。
毎時、実行する場合には、分を0 にします。その他はワイルドカードの*を記入します。
そして、ファイルのパスは、起動のための cron.sh を記入します。
記入が終わったら「保存」をクリックして保存します。
これで、毎時、00分にCRONが実行されます。
果たしてどうなるでしょうか?
【実行結果】
ブラウザで、cron2.phpを開くとこのように毎時、日時を取得して書き加えられていることがわかります。ここでのCRONの設置は上手くいきました。
(01秒となっているのは、cron.shファイルが00秒に実行され、cron1.phpがその一秒遅れになっているからと思われます。)
ピンバック: RasielCochma » corserverでcron設定がどうしてもうまくいかない時
ピンバック: 【XREA】CRONが動かない時の対策【CORESERVER】 | WEBマスターの知恵ブログ
ピンバック: 【PHP】サーバーの負荷を定期的にチェックする方法 | WEBマスターの知恵ブログ