ホームページ > バックエンド開発 > PHPチュートリアル > crontab_PHPチュートリアルの使い方を詳しく解説

crontab_PHPチュートリアルの使い方を詳しく解説

WBOY
リリース: 2016-07-21 15:04:11
オリジナル
914 人が閲覧しました

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 を使用して5分ごとにURLにアクセス PHPスクリプトを実行します。 Curl は、デフォルトで出力を標準出力に表示します。 「curl -o」オプションを使用して、スクリプトの出力を一時ファイルにダンプすることもできます。
コードをコピーします コードは次のとおりです:

*/5 * * * * /usr/bin/curl -o temp.txt http://www.jb51.net/myscript.php

次の例では、WGET を使用して URL にアクセスし、PHP スクリプトを 10 分ごとに実行します。 -q オプションは、Quiet モードを示します。 「-O temp.txt」は、出力が一時ファイルに送信されることを意味します。
コードをコピーします コードは次のとおりです:

*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.jb51.net/myscript. php

詳細な紹介は次のとおりです:
名前:
crontab
使用権限: すべてのユーザー
使用方法:
crontab [ -u user ] ファイル
crontab [ -u user ] { -l | -r | -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 の場合、プログラムは 1 時間ごとに実行されることを意味しますa 分から b 分まで、f2 が a-b の場合は、a 時間から b 時間まで実行されることを意味し、f1 が */n の場合は実行されることを意味します。 f2 が */n の場合、n 時間ごとに 1 回実行されます。f1 が a、b、c、... の場合、a、b が実行されることを意味します。 、c、... 分が実行されます。f2 が a、b、c、... の場合は、a 番目の分、b、c... 時間などを保存することもできます。最初にファイル内のすべての設定を行ってから、crontab ファイル方式を使用してスケジュールを設定します。

例:

#毎日午前7時に/bin/lsを1回実行: 0 7 * * * /bin/ls
12ヶ月間、毎日午前6時から午前12時まで3時間ごとに実行 Once/usr/ bin/backup:
0 6-12/3 * 12 * /usr/bin/backup
月曜日から金曜日まで毎日午後 5 時に alex@domain.name にレターを送信します:
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
毎日午前 0 時 20 分、2 時 20 分、4 時 20 分に echo "haha" を実行します。 20 0-23 /2 * * * echo "haha"


注:

指定した時間にプログラムが実行されると、システムはプログラムの実行内容を示すレターを送信します。このような手紙を受け取るには、各行の後に > /dev/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 jan * 日付



$crontab -l ユーザーの現在の crontab をリストします。 crontab コマンドの機能は、ユーザーの現在の crontab をスケジュールすることです。一定の時間間隔でいくつかのコマンドを実行します。 /etc ディレクトリには crontab ファイルがあり、システム操作のためのいくつかのスケジューラが保存されます。各ユーザーは独自のスケジュール crontab を作成できます。
crontab コマンドには 3 つの形式のコマンドライン構造があります:
crontab [-u user] [file]
crontab [-u user] [-e|-l|-r]
crontab -l -u [-e | -l|-r] 最初のコマンド ラインの file はコマンド ファイルの名前です。このファイルがコマンド ラインで指定されている場合、crontab コマンドを実行すると、このファイルが crontab ディレクトリにコピーされます。このファイルがコマンド ラインで指定されていない場合、crontab コマンドは標準入力 (キーボード) で入力されたコマンドを受け入れます。また、それらを crontab ディレクトリに保存します。 コマンドラインの -r オプションは、/usr/spool/cron/crontabs ディレクトリからユーザー定義ファイル crontab を削除します。
コマンドラインの -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 が優先されます。どちらのファイルも存在しない場合は、スーパーユーザーのみがジョブをスケジュールできます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327796.html技術記事 crontab を使用して、PHP コードを定期的に (たとえば、10 分ごとに) 実行します。 /10 * * * * wget -q --sqider http://****** 1. PHP を使用して Crontab でスクリプトを実行するのは、次のコマンドを使用するのと同じです。 Crontab 共通の電話をかける...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート