さくらのVPS

CentOSでcronを使う方法

cronとは?

crontab - WikiPedia

crontab(クロンタブ、あるいはクローンタブ、クーロンタブとも)コマンドはUnix系OSにおいて、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。標準入力からコマンド列を読み取り、crontabと呼ばれるファイルにそれを記録する。この記録を元に定時になると、その命令内容を読み取り、実行が行われる。
一般にcrontabコマンドで編集されたスケジュール内容は、crondデーモンにより実行される。crondはバックグラウンドで稼動し、毎分ごとに実行すべきスケジュールがないか確認し、もし実行すべきジョブがあれば、それを実行する。このジョブは「cron job」とも呼ばれる。

cronの設定・実行 | Linuxで自宅サーバ構築

cronとは、決められた時刻にコマンドを定期的に実行させるためのデーモンプロセスです。
cronではコマンドだけにとどまらず、シェルスクリプトや、PerlやPHPなどのインタープリタ言語で書かれたプログラムも動作させることができます。

crontabの設定

crondの動作確認

crondが起動しているか確認

# /etc/rc.d/init.d/crond status
crond (pid 2559) を実行中...

さくらのVPSでは、デフォルトのゲストOS(CentOS 5.5)だと、最初からcrontabが使える。

さくらのVPS OSセットアップ情報 起動デーモン

初期出荷時に自動起動設定(稼働中)のデーモン
crond 定期的にジョブを実行するためのcronサービス
/etc/init.d/crond {start|stop|status|reload|restart|condrestart}

PHPスクリプトの定期実行

(参考)cronの設定(さくらVPS)

まずphpのパスを調べておきます。

# which php
/usr/bin/php

var/aaa/b.phpというファイルを毎週木曜日14時30分に実行するとします。
この場合、crontabへの記入は下記のようになります。

# vi /etc/crontab

で直接編集しました。

30 14 * * 4 root /usr/bin/php /var/aaa/b.php

30 14 * * 4の部分はcronの実行時刻です。
左から
分 時 日 月 曜日の順に半角スペースで区切って入力していきます。
特に指定する必要のない項目は*を使用します。
今回の条件だと、木曜日の場合は日にちや月に関係なく作動させたいので、それらを*としておきます。
毎時間実行したい場合は、
30 * * * *
のように分だけ指定すれば1時間ごとに作動します。
月日時分は一般的な数字の記入で構わないのですが、曜日だけは若干独特です。
それぞれの曜日が
日=0 月=1 火=2 水=3 木=4 金=5 土=6
の数字に対応しています。
今回は木曜日に実行したいので、4を入力します。
30 14 * * 4
これで時間の設定は完了です。

次に実行するユーザーを指定します。
とりあえずrootで。
30 14 * * 4 root
 
そして次に、最初に調べておいたphpのパスを入力。
30 14 * * 4 root /usr/bin/php
 
最後に実行するコマンドのパスを入力しておしまいです。
30 14 * * 4 root /usr/bin/php /var/aaa/b.php
 
これで毎週木曜日14時30分に/var/aaa/b.phpが自動で実行されます。
とても便利ですね。

  • wgetでPHPスクリプトにアクセスして実行させるアイデア
    コマンドラインからのPHP実行

    目的のphpスクリプトへwgetするようにcronに記述するといいです。
    出力は不用なので /dev/null へ破棄するとか。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-06-08 (水) 14:19:44 (2384d)