crontab を使用して、PHP コードを定期的に (たとえば 10 分ごとに) 実行します。
/10 * * * * wget -q --sqider http://******
1. PHP を使用して Crontab でスクリプトを実行します
Crontab で通常のシェル スクリプトを呼び出すのと同じように (Crontab の特定の使用法)、PHP プログラムを使用して PHP スクリプトを呼び出します。
次のように myscript.php を 1 時間ごとに実行します:
次のようにコードをコピーします:
#crontab-e
00 * * * * /usr/local/bin/php /home/john/myscript.php
/usr/local/bin/php は PHP プログラムのパスです。
2. URL を使用して Crontab でスクリプトを実行します
PHP スクリプトを URL によってトリガーできる場合は、lynx、curl、または wget を使用して Crontab を構成できます。
以下の例では、Lynx テキスト ブラウザを使用して URL にアクセスし、PHP スクリプトを 1 時間ごとに実行します。 Lynx テキスト ブラウザは、デフォルトで会話モードを使用して URL を開きます。ただし、以下に示すように、lynx コマンド ラインで -dump オプションを使用して、URL 出力を標準出力に変換します。
次のようにコードをコピーします:
00 * * * * lynx -dump http://www.jb51.net/myscript.php
以下の例は、CURL を使用して URL にアクセスし、5 分ごとに PHP スクリプトを実行します。 Curl は、デフォルトで出力を標準出力に表示します。 「curl -o」オプションを使用して、スクリプトの出力を一時ファイルにダンプすることもできます。
次のようにコードをコピーします:
*/5 * * * * /usr/bin/curl -o temp.txt http://www.jb51.net/myscript .php
以下の例は、WGET を使用して URL にアクセスし、10 分ごとに PHP スクリプトを実行します。 -q オプションは、Quiet モードを示します。 「-O temp.txt」は、出力が一時ファイルに送信されることを意味します。
次のようにコードをコピーします:
*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.jb51.net/myscript.php
ここで彼について詳しく紹介します:
名前: crontab
アクセス権限: すべてのユーザー
使用方法:
crontab [-u ユーザー] ファイル
crontab [ -u ユーザー ] { -l | -e }
説明:
Crontab は、ユーザーが一定の時間または一定の間隔でプログラムを実行できるようにするために使用されます。つまり、ユーザーのスケジュールに似ています。 -u ユーザーは、指定されたユーザーのスケジュールを設定することを指します。前提として、他のユーザーのスケジュールを指定するには、そのユーザーの権限 (root など) が必要です。 -u user を使用しない場合は、独自のスケジュールを設定することを意味します。
パラメータ:
crontab -e: テキスト エディタを実行してスケジュールを設定します。デフォルトのテキスト エディタは VI です。別のテキスト エディタを使用する場合は、まず VISUAL 環境変数を設定して、使用するテキスト エディタを指定してください (たとえば、setenv VISUAL joe とします)。 )
crontab -r : 現在のスケジュールを削除します
crontab -l: 現在のスケジュールを一覧表示します
crontab ファイル [-u user] - 現在の crontab を指定されたファイルで置き換えます。
スケジュールの形式は次のとおりです:
f1 f2 f3 f4 f5 プログラム
ここで、f1 は分、f2 は時、f3 は日、f4 は月、f5 は曜日を表します。 Program は実行されるプログラムを表します。
f1 が * の場合、プログラムは 1 分ごとに実行されることを意味し、f2 が * の場合、プログラムは 1 時間ごとに実行されることを意味し、以下同様です
f1 が a-b の場合は、a 分から b 分まで実行されることを意味します。 f2 が a-b の場合、a 時間から b 時間まで実行されることを意味します。など
f1が*/nの場合はn分ごとに実行されることを意味し、f2が*/nの場合はn時間ごとに実行されることを意味します
f1 が a、b、c、... の場合、a、b、c、... 分が実行されることを意味します。 f2 が a、b、c、... の場合、a、b が実行されることを意味します。 、c... 実行までの時間、残りも同様
ユーザーは、最初にすべての設定をファイルに保存し、crontab ファイルを使用してスケジュールを設定することもできます。
例:
#毎日朝 7 時に 1 回実行 /bin/ls :
0 7 * * * /bin/ls
12 か月間、/usr/bin/backup は毎日午前 6 時から午前 12 時まで 3 時間ごとに実行されます:
0 6-12/3 * 12 * /usr/bin/backup
月曜日から金曜日の毎日午後 5 時に alex@domain.name に手紙を送信してください:
0 17 * * 1-5 mail -s "hi" alex@domain.name
毎日午前0時20分、2時20分、4時20分にエコー「笑」
を実行します。
20 0-23/2 * * * 「ははは」とエコー
注:
指定した時刻にプログラムが実行されると、システムはプログラムの実行内容を示すレターを送信します。このようなレターの受信を希望しない場合は、各行の後ろに > を追加してください。 /null 2>&1 で十分です
例2:
#毎日午前6時10分
10 6 * * * 日付
#2時間ごと
0 */2 * * * 日付
#午後11時から午前8時までの2時間ごと、午前8時
0 23-7/2、8 * * * 日付
#毎月4日、毎週月曜日から水曜日の午前11時
0 11 4 * 月曜〜水曜の日付
#1月の日午前4時
0 4 1 1月 *日付
例
$crontab -l はユーザーの現在の crontab をリストします。
crontab コマンドの機能は、特定の時間間隔でいくつかのコマンドの実行をスケジュールすることです。 /etc ディレクトリには crontab ファイルがあり、システム操作のためのいくつかのスケジューラが保存されます。各ユーザーは独自のスケジュール crontab を作成できます。
crontab コマンドには、次の 3 つの形式のコマンド ライン構造があります。
crontab [-u ユーザー] [ファイル]
crontab [-u ユーザー] [-e|-l|-r]
crontab -l -u [-e|-l|-r] 最初のコマンドラインの file はコマンドファイルの名前です。このファイルがコマンド ラインで指定されている場合、crontab コマンドを実行すると、このファイルが crontab ディレクトリにコピーされます。このファイルがコマンド ラインで指定されていない場合、crontab コマンドは標準入力 (キーボード) で入力されたコマンドを受け入れます。また、それらを crontab ディレクトリに保存します。
コマンドラインの -r オプションは、ユーザー定義ファイル crontab を /usr/spool/cron/crontabs ディレクトリから削除します。
コマンドラインの -l オプションは、ユーザーの crontab ファイルの内容を表示するために使用されます。コマンド crontab -u user -e を使用して、ユーザー user の cron(c) ジョブを編集します。ユーザーはファイルを編集することで、ジョブ リクエストを追加または変更できます。
コマンド crontab -u user -r を実行して、現在のユーザーの cron ジョブをすべて削除します。
ジョブとそのスケジュールされた時間は、ファイル /usr/spool/cron/crontabs/username に保存されます。 username はユーザー名で、ユーザーが実行するコマンドは対応するファイルに保存されます。コマンドの実行結果は、標準出力またはエラー出力を問わず、電子メールの形式でユーザーに送信されます。ファイル内の各リクエストには、スペースとタブで区切られた 6 つのフィールドが含まれている必要があります。最初の 5 つのフィールドは、いつ作業を開始するかを指定する整数値を取ることができます。6 番目のフィールドはコマンド フィールドと呼ばれる文字列で、crontab によって実行されるようにスケジュールされたコマンドが含まれます。
最初の行の 5 番目のフィールドの整数値の範囲と意味は次のとおりです:
0~59はポイントを意味します
1~23は時間です
1~31は日を意味します
1~12は月を表します
0~6は曜日を表します(0は日曜日を表します)
/usr/lib/cron/cron.allow は、誰が crontab コマンドを使用できるかを示します。ファイルが空の場合は、どのユーザーもジョブをスケジュールできないことを示します。このファイルが存在せず、別のファイル /usr/lib/cron/cron.deny が存在する場合、このファイルに含まれていないユーザーのみが crontab コマンドを使用できます。空のファイルの場合は、どのユーザーでもジョブをスケジュールできます。両方のファイルが存在する場合は、cron.allow が優先されます。どちらのファイルも存在しない場合は、スーパーユーザーのみがジョブをスケジュールできます。
andy1219111さんのコラムより抜粋