Linux crontabコマンドは、cronジョブをスケジュールするために使用されます。 cronジョブは、Linuxユーザーが特定の期間または間隔で自動化されたタスクを実行できるようにする便利な自動化ツールです。
これは、手動で管理する場合は面倒なタスクをスケジュールするための使いやすい方法です。 cronジョブは通常、システム管理者がサーバーのバックアップ、再起動、通知の送信、クリーンアップなどのタスクを自動化するために使用します。
cronジョブはバックグラウンドでサイレントに実行され、/etc/crontab
をチェックします。 ファイルと/var/spool/cron
および/etc/cron.*/
ディレクトリ。この記事では、Linuxシステムでcronジョブを作成および管理する方法を学習します。
LinuxCronジョブ構造
cronジョブの構造は次のとおりです。
* * * * * COMMAND arg1 arg2
または
* * * * * /path/to/script arg1 arg2
左から
The 1st entry represents Minutes [0 - 59]
The 2nd entry represents Hours [0 - 24]
The 3rd entry represents Days [0 - 31]
The 4th entry represents Months [0 - 12]
The 5th entry represents Days of the week [0 - 7]
Linuxcrontabの例
crontabのスケルトンができたので、コマンドまたはスクリプトへのパスがわかれば、非常に簡単に作成できます。
この例では、Linuxシステムを再起動するためのcrontabを作成します。
vim reboot.sh
以下のコンテンツをコピーしてbashファイルに貼り付けます。
#!/bin/bash
0 3 * * * /sbin/reboot
前に示したようにcrontab構文に従うと、cronジョブは毎日午前3時に実行され、システムを再起動します。
テキストエディタを保存して終了します。
次に、図のように実行権限を割り当てます。
# chmod +x reboot.sh
ファイルのアクセス許可を確認するには、次のコマンドを実行します:
# ls -l reboot.sh
crontabの実行を初期化するには
# crontab reboot.sh
現在ログインしているユーザーのcrontabの内容を表示する場合は、コマンドを実行します。
crontab -l
crontabが稼働していると、crontabは指定された時間、つまり現地時間の午前3時に実行されます。
システム内のすべてのcronジョブを削除するには、-r
を使用します オプション。
crontab -r
特定の時間間隔でcronジョブを実行する追加の例
- cronジョブを毎分実行するには 、run
* * * * * COMMAND
現在の時刻が午前6:00の場合、cronジョブは午前6:01、6:02などに実行されます。
- n分ごとにcronジョブを実行するには たとえば、10分ごとに、
*/10 * * * * COMMAND
- cronジョブを実行するには毎時n分ごと たとえば、毎時30分ごとに、
30 * * * * COMMAND
- cronジョブを1時間ごとに実行するには 、つまり0分ごとに、
0 * * * * COMMAND
- n時間ごとにcronジョブを実行するには たとえば、6時間ごとに、
0 */6 * * * COMMAND
- 特定の日にcronジョブを実行するには 、たとえば金曜日に、
0 0 * * FRI COMMAND
- cronジョブを月曜日から金曜日まで実行する場合 run
0 0 * * 1-5 COMMAND
これにより、月曜日から金曜日まで毎日00:00にコマンドが実行されます。
- cronジョブを毎日実行するには 、run
0 0 * * * COMMAND
- cronジョブを実行するには毎月1日ごと
0 0 1 * * COMMAND
- cronジョブを実行するには毎月1日特定の時間に 、たとえば20:30時間、実行
30 20 1 * * COMMAND
- 仕事を年の四半期ごとに実行するには つまり、3か月ごとの1日目に、
0 0 1 */3 * COMMAND
- cronジョブを毎年実行するには 、run
0 0 1 1 * COMMAND
このcronジョブは、毎週金曜日の深夜00:00に実行されます。
CrontabGuruを使用したcronジョブのスケジュール
Crontabの構文は非常に混乱し、習得が難しい場合があります。でも心配しないでくださいCrontab Guruは非常に使いやすいオンラインツールで、面倒なことなく時間間隔をシームレスに定義できます。これは、crontabの時間間隔に適切なラベルが付けられたウェブインターフェースであり、ツールがcrontabを解釈するときに、テキストフィールドに図を入力するだけで済みます。以下の例では、ツールは月曜日から土曜日まで午前6時ごとにcronジョブを自動化するためのcrontabを生成しました。