ウェブサイト検索

Linux で Cron ジョブを作成および管理する方法


Cron は、Linux の最も便利なツールの 1 つであり、汎用スクリプトとタスク固有のスクリプトの両方を使用して、特定の期間、日付、間隔で自動コマンドを実行できるため、開発者に人気があります。この説明を考えると、システム管理者がこれを使用してバックアップ タスク、ディレクトリのクリーニング、通知などを自動化する方法が想像できます。

Cron ジョブはバックグラウンドで実行され、/etc/crontab ファイル、/etc/cron.*/ および /var/spool/cron/ を常にチェックします。 ディレクトリ。 cron ファイルは直接編集することは想定されておらず、各ユーザーは一意の crontab を持っています。

では、cron ジョブをどのように作成および編集すればよいのでしょうか? crontab コマンドを使用します。 crontab は、cron ジョブの作成、編集、インストール、アンインストール、および一覧表示に使用する方法です。

cron ジョブを作成および編集するためのコマンドは同じで簡単です。さらに素晴らしいのは、新しいファイルを作成したり、既存のファイルを編集した後に cron を再起動する必要がないことです。


crontab -e

Cron 構文

他の言語と同様に、cron の構文を理解すると、作業がはるかに簡単になります。また、次の 2 つの形式を知っておく必要があります。


A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

上記の cron 構文の説明:

  • A: 分 範囲: 0 – 59
  • B: 時間 範囲: 0 – 23
  • C: 日 範囲: 0 – 31
  • D: 月 範囲: 0 – 12
  • E: 曜日 の範囲: 0 ~ 7。月曜日から始まり、0 または 7 は日曜日を表します
  • ユーザー名: これをユーザー名に置き換えます
  • /path/to/command – スケジュールするスクリプトまたはコマンドの名前

それがすべてではありません。 Cron は 3 つの演算子記号を使用して、フィールドに複数の値を指定できます。

  1. アスタリスク (*): フィールドに取り得るすべての値を指定します
  2. カンマ (,): 値のリストを指定します。
  3. ダッシュ (-): 値の範囲を指定します
  4. 区切り文字 (/): はステップ値を指定します

Cron の構文と演算子を理解したところで、いくつかの cron の例を見てみましょう。

Cron ジョブの例

cron コマンドを実行するための最初のステップは、次のコマンドを使用して crontab をインストールすることです。


crontab -e

毎日午前 3 時/root/backup.sh を実行します。


0 3 * * * /root/backup.sh

毎月 2 日の午後 4 時 30 分script.sh を実行します。

30 16 2 * * /path/to/script.sh

平日の午後 10 時/scripts/phpscript.php を実行します。

0 22 * * 1-5 /scripts/phpscript.php

毎日午前 2 時と午前 4 時の 23 分perlscript.pl を実行します。

23 0-23/2 * * * /path/to/perlscript.pl

毎週日曜日の 04:05 に Linux コマンドを実行します。

5 4 * * sun /path/to/linuxcommand

Cron オプション

cron ジョブをリストします。


crontab -l
OR
crontab -u username -l

すべての crontab ジョブを削除します。

crontab -r

特定のユーザーの Cron ジョブを削除します。


crontab -r -u username

Crontab の文字列

文字列は繰り返しの書き込みを排除して時間を節約できるため、開発者が最も好むものの 1 つです。 Cron には、コマンドをより迅速に作成するために使用できる特定の文字列があります。

  1. @hourly: 1 時間ごとに実行します。つまり、「0 * * * *
  2. @midnight: 毎日 1 回実行します。つまり、「0 0 * * *
  3. @daily: 午前 0 時と同じ
  4. @weekly: 毎週 1 回実行します。つまり、「0 0 * * 0
  5. @monthly: 毎月 1 回実行します。つまり、「0 0 1 * *
  6. @annually: 毎年 1 回実行します。つまり、「0 0 1 1 *
  7. @yearly: @annually と同じ
  8. @reboot: 起動するたびに 1 回実行します。

たとえば、システムを毎日バックアップする方法は次のとおりです。

@daily /path/to/backup/script.sh

この時点で、Cron を使用してシステム タスクを作成および管理するために必要なものがすべて揃っています。スケジュールされたコマンドを使用して、いくつかの環境のセットアップと保守を開始できるようになりました。

あなたはどのくらい Cron ユーザーですか?記事に貢献できる詳細はありますか?ディスカッションボックスは以下にあります。

Crontab の仕組みを十分に理解すると、これらの気の利いた Crontab ジェネレーター ユーティリティを使用して crontab 行を無料で生成できます。

また、Cron の使用方法に関する Ubuntu の記事もここで読むことができます。役立つリソースが含まれています。