ホームページ >バックエンド開発 >PHPチュートリアル >crontab phpを自動実行する方法の紹介
この記事では、PHP で crontab を使用して関連プログラムを自動的に実行する方法を紹介します。必要な場合は参考にしてください。
crontab - ユーザーごとのデーモンとその実行スケジュールを操作します。 特定のパラメータは次のように説明されます。 crontab ファイル [-u user] - 現在の crontab を指定されたファイルで置き換えます。 crontab-[-u user] - 現在の crontab を標準入力に置き換えます。 crontab-1[user] - ユーザーの現在の crontab をリストします。 crontab-e[user] - ユーザーの現在の crontab を編集します。 crontab-d[user] - ユーザーの現在の crontab を削除します。 crontab-c dir- は、crontab ディレクトリを指定します。 crontab ファイルの形式: M H D m d cmd。M: 分 (0-59)。 H: 時間 (0 ~ 23)。 D: 日 (1 ~ 31)。 m: 月 (1 ~ 12)。 d: 曜日 (0 ~ 6、0 は日曜日)。 cmd によって実行されるプログラムは、実行のために sh に送信されます。このシェルには、USER、HOME、および SHELL の 3 つの環境変数しかありません。 参考までに具体的な応用例をいくつか紹介します。 コードをコピー コード例: #MIN HOUR DAY MONTH DAYOFWEEK コマンド #毎日午前6時 106* * * 日付 #2時間ごと 0*/2* * * 日付 #午前11時から午前8時までの2時間ごと 0 23-7/2、8* * * 日付 #毎月4日、毎週月曜〜水曜 午前11時 0 11 4* 月~水の日付 #1月1日午前4時 0 4 1 1月*日 例 lark:~>crontab-1 は、ユーザーの現在の crontab をリストします。 #MIN HOUR DAY MONTH DAYOFWEEK コマンド 10 6* * * 日付 0*/2* * * 日付 0 23-7/2,8 * * * 日付Linux で crontab を使用する場合、環境変数の問題に特別な注意を払う必要があります。ここでは、Oracle を実行する sqlplus を例にして crontab の使用方法を説明します。 1. crontabの使い方: crontab [ -e | -l | -r ] ファイル名 -e: タスクの編集 -l: タスク情報の表示 -r: 実行予定タスクの情報の削除 2. crontabで処理されるファイル形式は 分 時 日 月 週 実行ファイル名 *はすべての条件を表します 5 * * * * rem /home/oracle/execsql は各5分ごとの/home/oracle/execsqlファイルの実行を表します時間 3. 特定の環境変数の下で実行する必要がある SQL などのコマンドは、実行ファイルにリストする必要があります。 sqlplus が oracle で実行される場合は、次の形式で記述する必要があります: $ cat execsql ORACLE_HOME=/ora815;export ORACLE_HOME ORACLE_OWNER=oracle;export ORACLE_OWNER ORACLE_SID=ora815;export ORACLE_SID ORACLE_BASE=/ora815/app/oralce;export ORACLE_BASE LD _LIBRARY_PATH =$ORAC LE_HOME /lib;export LD_LIBRARY_PATH PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH;export PATH NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280;export NLS_LANG /ora815/bin/sqlplus test1/test1 @test1.ext (@test1 を実行します。 ext ファイル、データベース ユーザー名/パスワードは test1/test1) これには、execsql が実行可能プログラムである必要があります $ ls -al execsql -rwxr-xr-x 1 oracle dba 374 Oct 07 15:17 execsql crontabを使用してphpプログラムを12:00に実行するようにします。 以下の形式に従って変更し、crontabに追加するだけです。 00 0 * * * cd /プログラムのパス;php プログラム名.php これは、cli または CGI モードの php でコンパイルする必要があります。 また: 管理者権限がなければ仮想空間しか存在しない PHPにはとても便利な関数があります。これは最近の開発で徐々に使用されています。 intignore_user_abort ([bool 設定]) この関数の機能は、リモート クライアントが接続を閉じた後、次のスクリプトの実行を継続するかどうかをサーバーに指示することです。設定パラメータはオプションのパラメータです。 True に設定すると、ユーザーがスクリプトの実行を停止しても、スクリプトの実行には影響しません (つまり、スクリプトは実行を継続します)。False に設定すると、ユーザーが実行を停止しても影響を受けないことを意味します。スクリプトを実行すると、スクリプトの実行が停止します。 PHPバックグラウンド実行タスクのコード: コードをコピー コード例: |