crontabはLinuxに付属のコマンドです
phpを自動的に実行する方法
phpを自動的に実行する方法はたくさんありますが、次のDZと、システムを介して完了するいくつかのメソッド、および直接トリガーするメソッドを示します。常駐システムの運用。
Discuz には、PHP を自動的に実行できるスケジュールされたタスクがバックグラウンドであります。
DZ スケジュールされたタスクのメカニズムは次のとおりです:
1. まず、スケジュールされたタスクをトリガーする時間になると、訪問 (メンバー、訪問者、検索エンジン スパイダー) が発生し、その後、スケジュールされたタスクがトリガーされます。 (PHP はトリガー言語であり、誰もアクセスしないため、何もできません。)
2. スケジュールされたタスクの実行が成功すると、成功した実行に関する情報が返されます。次回実行する必要があるときに、時刻がデータベースに更新されます。
現在、PHP を自動的に実行する方法はいくつかあります:
1: Windows でスケジュールされたタスクを使用する Linux で crantab を使用する
欠点: サーバー権限が必要です
2: 特定の Web を更新するを使用するたとえば、js または php プログラムを使用して、時々ページを開きます。
欠点: ページを開くにはツールを使用する必要があります。
3: ユーザーの訪問時にトリガーされます
欠点: ユーザーが訪問したページにトリガー プログラムが含まれている必要があります。
crontabを使用して実行をスケジュールします
はUNIXコマンドですcrontab - ユーザーごとにデーモンを操作し、実行のスケジュールを設定します。
いくつかの特定のパラメータは次のように説明されています:
crontab ファイル [-u user] - 現在の crontab を指定されたファイルで置き換えます。 crontab-[-u user] - 現在の crontab を標準入力に置き換えます。
crontab-1[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 つの環境変数しかありません。
以下はファイルの例です:
1: crontabの使い方: crontab [ -e | -l | -r ] ファイル名 -e: タスクの編集 -l: タスク情報の表示 -r: 実行予定タスクの情報の削除
2: crontab で処理されるファイル形式は、分、時、日、月、週です。 実行されるファイル名 * はすべての条件を表します 5 * * * * rem /home/oracle/execsql は /home/ の実行を表します。 oracle 毎時 5 分に /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 LE_BASE LD_LIBRARY_PA TH=$ ORACLE_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 でコンパイルする必要があります。
さらに:
If管理権限ではなく、仮想空間のみですPHPには非常に便利な機能があります。これは最近の開発で徐々に使用されています。 intignore_user_abort ([bool 設定]) この関数の機能は、リモート クライアントが接続を閉じた後、次のスクリプトの実行を継続するかどうかをサーバーに指示することです。設定パラメータはオプションのパラメータです。 True に設定すると、ユーザーがスクリプトの実行を停止しても、スクリプトの実行には影響しません (つまり、スクリプトは実行を継続します)。False に設定すると、ユーザーが実行を停止しても影響を受けないことを意味します。スクリプトを実行すると、スクリプトの実行が停止します。 次の例では、ユーザーがブラウザを閉じた後、スクリプトはサーバー上で実行を続けます: