Fatal Error: Unexpected BLOG

主に自分用の備忘録として

crontabでPHPファイルを自動実行する

カテゴリPHPにしてますが、crontabの話です。

設定した時間(時刻)にコマンドを実行してくれる便利なやつ。

自分用にメモ。

以下のサイトを参考にさせて頂きました。あと、弊社のウィザード。

自動実行を設定する

基本的には以下の書式。

    * * * * * [command] [options]

*(アスタリスク)には時間や時刻、日にちや曜日を指定する。[command]はコマンド。[options]は引数。

例えば、毎日午前6時00分に"test.php"を実行する場合は以下の通り。

    0 6 * * * /path/to/php /path/to/file/test.php

PHPを実行する場合は、まずPHP自体をコマンドで呼び出す必要があるそうです。

なお、実行した時刻やtest.phpの出力をログに吐き出させる場合は以下のように。

    0 6 * * * date >> /path/to/log.log ; /path/to/php /path/to/file/test.php >> /path/to/log.log

時刻の指定方法

時刻の指定は以下の順序で出来ます。

    分 時 日 月 曜日 [command] ...

範囲指定や、複数指定も可能です。

また、曜日は対応する数値で指定します。

例えば、「毎週火曜、午前0時~午前9時及び午後5時~午後11時の間、5分間隔でコマンドを実行」は以下の通り。

    */5 0-9,17-23 * * 2 [command] [options] ...

crontabのオプション

  • -u: crontabを設定するユーザを指定
  • -l: crontabの設定内容を標準出力へ出力。要するに中身が確認できます。
  • -r: crontabの設定内容を全て破棄する。
  • -e: 環境変数で指定されているエディタを使ってcrontabを編集する。編集を終了するとcrontabは自動でインストールされます。

「-r」は使ったこと無いので分かりませんが、警告も出ないらしいです。
キーボード上で「e」の隣なので、タイプミスに要注意ですね。


設定及び実行は自己責任でお願いします。m(_ _)m