CentOS 8でCronタスクスケジューラを設定する

CronJobは、特定の時間にタスクを実行したり、特定の時間後にタスクを繰り返し実行したりするLinuxのタスクスケジューラです。ここでは、CentOS 8でCronJobを設定する方法を説明します。


CronJobはLinux特定の時間にタスクをスケジュールしたり、特定の時間後にタスクを繰り返すようにスケジュールしたりするプログラムです。CentOS 8での設定方法は次のとおりです。 仕事。
cronは、Unix系オペレーティングシステム向けの時間ベースのタスク管理システムです。cronを使用すると、コマンドやスクリプトなどの定期的なタスクを、決まった時間、日付、間隔で実行できます。cronはメンテナンスや管理によく使用されますが、ファイルやメールの定期的なダウンロードなど、他の用途にも使用できます。cronという単語は、元々は時間を意味するギリシャ語の「クロノス」に由来しています。
通常、タスクスケジュール(crontab)ファイルに保存された指示は、crondデーモンによって実行されます。crondデーモンはバックグラウンドで実行され、実行する必要がある定期的なジョブがあるかどうかを1分ごとに確認します。このようなジョブは一般にcronジョブと呼ばれます。
CentOS 8 で Cron ジョブの設定を開始する前に、サーバー上で sudo 権限を持つ非 root ユーザー アカウントが必要です。
テキスト エディターを使用して crontab を開くには、次のコマンドを入力します。

crontab -e

上記のコマンドを入力すると、テキスト エディターを選択するように求められます。
crontab では、mh dom mon dow ユーザー ヘッダーは次の意味を持ちます。
* m = cron ジョブが実行される分。(0 から 59) * h = タスクが実行される時間を決定する整数。(0 から 23) * dom = cron ジョブが実行される日。(1 から 31) * mon = cron ジョブが実行される日。(1 から 12) * dow = 曜日。0 から 6 までで日曜日が 0 です。(0 から 6) * user = cron が実行されるユーザー。 * command = 実行する Linux コマンド。
crontabタイミングのアスタリスク(
cronjobを設定するときはアスタリスク(
)は広く使用されています。つまり、m (分) と表現すると、1 分ごとにコマンドが実行されます。
Cronジョブの基本的な例
毎分実行されるCron

* * * * * (ユーザー) (コマンド)

10分ごとにCronを実行する

10 * * * * (ユーザー) (コマンド)

30分ごとにCronを実行する

30 * * * * (ユーザー) (コマンド)

毎時実行される Cron(分が 0 になったとき)

0 * * * * (ユーザー) (コマンド)

真夜中に実行されるCron

0 0 * * * (ユーザー) (コマンド)

午前8時に実行されるCron

0 8 * * * (ユーザー) (コマンド)

PHPスクリプトを実行するためのCron

 * * * * * ルート /usr/bin/php /var/www/html/project/test.php

crontabの高度な例
crontab でカンマを使用する: 次のコマンドは、1 月、3 月、7 月、12 月 15 日の午前 8 時 45 分に実行されます。

45 8 15 1月、3月、7月、12月 * (ユーザー) (コマンド)

crontab で除算演算子を使用します。分を 10 で割ります。次のコマンドは、毎時 0 分、10 分、20 分、30 分、40 分、50 分に実行されます (すべての分は 10 で割り切れます)。

*/10 * * * * (ユーザー) (コマンド)

crontab 内のダッシュ: 次の crontab は毎月 15 日から 20 日まで実行されます。ダッシュは範囲を表します。

0 0 15-20 * *(ユーザー) (コマンド)

cron式の詳細な説明:
Cron 式は 5 または 6 個のスペースで区切られた文字列で、6 または 7 個のフィールドに分割され、各フィールドは意味を表します。Cron には次の 2 つの構文形式があります。
秒 分 時間 曜日 月 曜日 年 または
秒 分 時間 曜日 月 曜日
各フィールドに表示できる文字は次のとおりです。
秒: ", - * /" の4文字を含めることができます。有効な範囲は0~59の整数です。
分: ", - * /" の 4 つの文字を含めることができます。有効な範囲は 0 ~ 59 の整数です。
時間: ", - * /" の4文字を含めることができます。有効な範囲は0~23の整数です。
DayofMonth: ", - * / ? LWC" の 8 文字を含めることができます。有効な範囲は 0 ~ 31 の整数です。
月: ", - * /" の4文字が許可されます。有効な範囲は1から12までの整数またはJAN-DECです。
DayofWeek: ", - * / ? LC #" が使用できます。有効な範囲は1から7までの整数、またはSUNからSATまでの2つの範囲です。1は日曜日、2は月曜日、というように続きます。
年: ", - * /" の 4 文字を含めることができます。有効な範囲は 1970 年から 2099 年です。
各フィールドでは数字が使用されますが、次の特殊文字も使用される場合があり、その意味は次のとおりです。
*: フィールド内の任意の値が一致することを示します。「分」フィールドで使用すると、イベントは1分ごとにトリガーされます。
?: は、DayofMonth および DayofWeek フィールドでのみ使用できます。フィールド内の任意の値と一致する可能性がありますが、実際には一致しません。これは、DayofMonth と DayofWeek が相互に影響し合うためです。例えば、20 日が何曜日であるかに関係なく、毎月 20 日にスケジュールを実行したい場合、次の構文のみ使用できます。13 13 15 20 * ?。最後の桁は ? のみで、使用する場合曜日に関係なく発動するという意味ですが、そうではありません。
-: は範囲を示します。例えば、「分」フィールドに「5-20」と入力した場合、トリガーは5分から20分まで1分ごとに実行されます。
/: トリガーは開始時刻に開始し、その後は一定間隔で1回トリガーされます。例えば、「分」フィールドに「5/20」と入力した場合、トリガーは5分ごとに1回、そして25分、45分といった間隔で1回トリガーされます。
,: は列挙値のリストを示します。例えば、「Minutes」フィールドに 5,20 と入力した場合、トリガーは毎分5分と20分に1回実行されます。
L: は最終を意味し、DayofWeekフィールドとDayofMonthフィールドにのみ使用できます。DayofWeekフィールドに5Lを使用した場合、最終木曜日にトリガーされることを意味します。
W: は有効な営業日(月曜日から金曜日)を示します。これは DayofMonth フィールドにのみ入力できます。システムは、指定された日付に最も近い有効な営業日にイベントをトリガーします。例えば、DayofMonth に 5W を使用した場合、5 日が土曜日であれば、イベントは最も近い営業日である金曜日、つまり 4 日にトリガーされます。5 日が日曜日であれば、イベントは 6 日(月曜日)にトリガーされます。5 日が月曜日と金曜日の間の日であれば、イベントは 5 日にトリガーされます。もう一つの注意点は、W の最も近い検索は月をまたがないことです。
LW: これら 2 つの文字を組み合わせて使用すると、月の最後の営業日、つまり最後の金曜日を示すことができます。
#: 各月の曜日を決定するために使用されます。DayofMonthフィールドにのみ使用できます。例えば、4#2は月の第2水曜日を意味します。
例:
0 0 2 1 * ? * は、毎月1日の午前2時にタスクをスケジュールすることを意味します。
0 15 10 ? * MON-FRIは、ジョブが毎週月曜日から金曜日の午前10時15分に実行されることを意味します
0 15 10 ? 6L 2002-2006 は、2002 年から 2006 年までの毎月最終金曜日の午前 10 時 15 分にアクションが実行されることを意味します。
cron 式には、スペースで区切られた少なくとも 6 個 (場合によっては 7 個) の時間要素が含まれます。
順番に:
秒(0~59)
分(0~59)
時間(0~23)
日(月)(0〜31ですが、月の日数を考慮する必要があります)
月(0~11)
曜日(週)(1〜7 1=日曜日または日曜日、月曜日、火曜日、水曜日、木曜日、金曜日、土曜日)
年(1970-2099)
各要素は、値(例:6)、連続した間隔(9~12)、間隔(8~18/4)(/は4時間ごと)、リスト(1、3、5)、またはワイルドカードのいずれかになります。「日」と「曜日」は互いに排他的なので、どちらか一方を設定する必要があります。
0 0 10,14,16 * * ? 毎日午前10時、午後2時、午後4時
0 0/30 9-17 * * ? 9時から5時までの勤務時間中に30分ごと
0 0 12 ? * WEDは毎週水曜日の正午を意味します
「0 0 12 * * ?」毎日正午に発動
"0 15 10 ? * 毎日午前10時15分に発動
「0 15 10 * * ?」毎日午前10時15分に発動
「0 15 10 * * ? *」は毎日午前10時15分に発動します
「0 15 10 * * ? 2005」は2005年の毎日午前10時15分に実行されます
「0 * 14 * * ?」は毎日午後2時から午後2時59分まで毎分トリガーされます
「0 0/5 14 * * ?」は毎日午後2時から午後2時55分まで5分ごとに発生します
「0 0/5 14,18 * * ?」は毎日午後2時から午後2時55分までと午後6時から午後6時55分まで5分ごとに発生します
「0 0-5 14 * * ?」は毎日午後2時から午後2時5分まで毎分トリガーされます
「0 10,44 14 ? 3 WED」は毎年3月の水曜日の午後2時10分と午後2時44分に発動します。
「0 15 10 ? * MON-FRI」は月曜日から金曜日の午前10時15分に発動します
「0 15 10 15 * ?」毎月15日の午前10時15分に発動
「0 15 10 L * ?」毎月最終日の午前10時15分に発動します
「0 15 10 ? * 6L」は毎月最終金曜日の午前10時15分に発動します。
「0 15 10 ? * 6L 2002-2005」は、2002年から2005年までの毎月最終金曜日の午前10時15分に実行されます。
「0 15 10 ? * 6#3」は毎月第3金曜日の午前10時15分に発動します。
一部の部分式には範囲やリストを含めることができます
たとえば、サブ式(日(週))は「月~金」、「月、水、金」、「月~水、土」となります。
" 文字はすべての可能な値を表します
したがって、"「部分式(月)では各月を意味します」「部分式(day(week))は週のすべての曜日を意味します
「/」文字は値の増分を指定するために使用されます
たとえば、部分式(分)の「0/15」は、0分目から15分ごとに開始することを意味します。
部分式(分)の「3/20」は、3分目から20分ごとを意味します(「3、23、43」と同じ意味です)。
「?」文字は、値が指定されていないことを示すために、日 (月) および日 (週) のサブ式でのみ使用されます。
2 つのサブ式の 1 つに値が割り当てられている場合、競合を回避するために、もう一方のサブ式の値を「?」に設定する必要があります。
「L」文字は、日(月)および日(週)の部分式でのみ使用され、「last」という単語の略語です。
しかし、その意味は 2 つの部分式で異なります。
日(月)の部分式では、「L」は月の最終日を意味します。
日(週)表現では、「L」は週の最後の日、つまり土曜日を意味します。
「L」の前に何か特別なものがある場合は、別の意味を持ちます。
たとえば、「6L」は月の6番目の最終日を意味し、「FRIL」は月の最後の金曜日を意味します。
注意: 「L」パラメータを使用する場合は、リストや範囲を指定しないでください。問題が発生する場合があります。
フィールド値に使用できる特殊文字
秒 0~59、- * /
ポイント0~59、-* /
時間 0-23、- * /
日付 1-31、- * ? / LWC
1~12月または1月~12月、- * /
月曜日〜土曜日または日曜日〜土曜日、- * ? / LC #
年(任意)空白のまま、1970-2099、- * /
CentOS 8 で Cron ジョブを設定する方法。これについて質問がある場合は、以下にコメントしてください。

1/5 - (1票)

手紙への返信

メールアドレスが変更されることはありません。 支払い欄に必須の項目は必須です