はじめに
Cronデーモンは、スケジュールされた時間にシステム上でプロセスを実行する組み込みのLinuxユーティリティです。 cronはcrontabを読み取ります (cronテーブル)事前定義されたコマンドとスクリプト用。
特定の構文を使用することで、cronジョブを構成できます。 スクリプトまたはその他のコマンドを自動的に実行するようにスケジュールします。
このガイドでは、Linuxでcronジョブを設定する方法を例とともに示します。
前提条件
- Linuxを実行しているシステム
- コマンドライン/ターミナルウィンドウへのアクセス( Ctrl – Alt – T またはCtrl – Alt – f2 )
- rootまたはsudoを持つユーザーアカウント 特権
基本的なcrontab構文
cron 実行するコマンドのリストの構成ファイルを読み取ります。デーモンは特定の構文を使用して、 crontabの行を解釈します 構成テーブル。
cronジョブを設定できるようにするには、この構文を構成する基本的な要素を理解する必要があります。 crontab行の標準形式は次のとおりです。
a b c d e /directory/command output
したがって、 cron
の一部 コマンド は:
1.最初の5つのフィールドa b c d e
ジョブの日時と繰り返しを指定します。
2. 2番目のセクションでは、 /directory/command
実行する場所とスクリプトを指定します。
3.最後のセグメントoutput
オプションです。システムがユーザーにジョブの完了を通知する方法を定義します。
1。 cronジョブ時間形式
コマンドの最初の5つのフィールドは、コマンドを実行するタイミングと頻度を定義する数値を表します。各位置はスペースで区切られ、特定の値を表します。
次の表は、フィールドの可能な値と構文例をまとめたものです。
フィールド | 可能な値 | 構文 | 説明 |
[a] –分 | 0 – 59 | 7 * * * * | cronジョブは、システム時計が分の位置に7を表示するたびに開始されます。 |
[b] –時間 | 0 – 23 | 0 7 * * * | cronジョブは、システム時刻が午前7時を示しているときはいつでも実行されます(午後7時は19としてコード化されます)。 |
[c] –日 | 0 – 31 | 0 0 7 * * | 月の日は7です。これは、ジョブがその月の7日ごとに実行されることを意味します。 |
[d] –月 | 0 =なし、12=12月 | 0 0 0 7 * | 数値の月は7であり、ジョブが7月にのみ実行されることを決定します。 |
[e] –曜日 | 0=日曜日および7=日曜日 | 0 0 * * 7 | 7が現在の位置にあるということは、ジョブが日曜日にのみ実行されることを意味します。 |
2。実行するコマンド
次のセクションでは、実行するコマンドを指定します。これは、cronに実行させたいスクリプトまたはコマンドの正確なディレクトリとファイル名を表します。例:
/root/backup.sh
この例では、コマンドはシステムのルートディレクトリを調べ、 backup.shを実行します。 脚本。任意のスクリプトまたはコマンドを指定できます。
3。出力(オプション)
デフォルトでは、 cron
実行時にcrontabファイルの所有者に電子メールを送信します。これは、タスクを追跡するための便利な方法です。通常のタスクまたはマイナーなタスクによって、受信トレイがすぐにいっぱいになる可能性があることに注意してください。
これはオプション機能であるため、出力メールを無効にすることでそのシナリオを防ぐことができます。メール出力をオフにするには、次の文字列を追加します。 >/dev/null 2>&1
、 タイミングフィールドとコマンドフィールドの後。
* * * * * directory/command >/dev/null 2>&1
4。演算子の使用(オプション)
効率を上げるために、cron構文でも演算子を使用します。演算子は、cronフィールドに指定された値に対して操作を実行する特殊文字です。
- アスタリスク(*) すべての値を表します。この演算子を使用して、すべての月またはすべての曜日にタスクを実行し続けます。
- カンマ(、) 個別の個別の値を指定します。
- ダッシュ(–) 値の範囲を示します。
- スラッシュ(/) 値をステップに分割するために使用されます。 (* / 2は1つおきの値、* / 3は3つおき、* / 10は10分の1など)
cronジョブの設定
cronジョブを構成するには、優先するテキストエディターでcrontabを開き、実行するコマンドの構文を入力します。
crontabファイルを編集するには?
現在のユーザーのcrontab構成ファイルを開くには、ターミナルウィンドウで次のコマンドを入力します。
crontab –e
スケジュールされたタスクは、1行に1つずつ、いくつでも追加できます。
タスクの追加が完了したら、ファイルを保存します 終了します。 cronデーモンは、提供された命令を読み取って実行します。
変更を適用するためにCronを再起動する必要がないことを忘れないでください。
別のユーザーのcrontabを編集
別のユーザーのcrontabを編集するには、次のコマンドを入力します。
crontab –u other_username –e
cronジョブの例
ジョブを指定するときは、アスタリスクを使用してすべての値を指定してください。フィールドの1つに値を入力すると、その値に対してのみコマンドが実行されます。例:
* 2 0 * 4 /root/backup.sh
午前2時に実行するように設定されていますが、月の最初(0)が水曜日(4)に当たる場合にのみ実行されます。次のように変更した場合:
* 2 0 * * /root/backup.sh
このコマンドは、毎月1日の午前2時に実行されます。次の表に、/root/backup.shを使用したいくつかの基本的なコマンドを示します。 前の例のファイル。
Cron Job | コマンド |
毎分cronジョブを実行 | * * * * * /root/backup.sh |
30分ごとにcronジョブを実行 | 30 * * * * /root/backup.sh |
毎時cronジョブを実行 | 0 * * * * /root/backup.sh |
毎日深夜にcronジョブを実行する | 0 0 * * * /root/backup.sh |
毎日午前2時にcronジョブを実行する | 0 2 * * * /root/backup.sh |
毎月1回Cronジョブを実行 | 0 0 1 * * /root/backup.sh |
毎月15回ごとにcronジョブを実行 | 0 0 15 * * /root/backup.sh |
12月1日にcronジョブを実行– 真夜中 | 0 0 0 12 * /root/backup.sh |
土曜日の深夜にCronジョブを実行する | 0 0 * * 6 /root/backup.sh |
特殊文字の使用
スラッシュを使用して、時間文字列をステップに分割できます。 15分ごとにバックアップを実行するには:
*/15 * * * *
*
すべての値を意味し、 /15
カウントして15分ごとに繰り返します。
ダッシュ文字を使用して範囲を指定します。平日の午前4時にコードを実行するには:
0 4 * * 1-5 /root/backup.sh
この場合、 1-5
月曜日から金曜日を指定します。
カンマを使用して、コードを実行する必要がある個々のインスタンスを指定します。
0 4 * * 2,4 /root/backup.sh
これにより、火曜日と木曜日の午前4時にコードが実行されます。
一部のワイルドカードは組み合わせることができます。コマンドを1日おきに1時間の37分に実行します:
37 1-23/2 * * * /root/backup.sh
1-23
時間の範囲を指定します。/2
間隔を1時間おきに設定します。
既存のcronジョブの一覧表示
crontab構成ファイルを開かなくても、システム上のすべてのcronジョブを一覧表示できます。ターミナルウィンドウに次のコマンドを入力します。
crontab –l