LinuxでのCronジョブの作成と管理方法

Cronは、Linuxの最も有用なツールの1つであり、開発者にとってはお気に入りです。なぜなら、一般的な用途やタスク固有のスクリプトを使用して、特定の期間、日付、および間隔で自動化されたコマンドを実行できるからです。この説明からも、システム管理者がバックアップタスク、ディレクトリのクリーニング、通知などを自動化する方法が想像できます

Cronジョブはバックグラウンドで実行され、常に/etc/crontabファイル、および/etc/cron.*//var/spool/cron/ディレクトリをチェックします。cronファイルは直接編集されるべきではなく、各ユーザーに固有のcronテーブルがあります。

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

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: Minutes range: 0 – 59
  • B: Hours range: 0 – 23
  • C: Days range: 0 – 31
  • D: Months range: 0 – 12
  • E: Days of the week range: 0 – 7. Starting from Monday, 0 or 7 represents Sunday
  • ユーザー名:これをあなたのユーザー名に置き換えます
  • /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

毎日深夜0時23分、2時、4時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 -r

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

# crontab -r -u username

Crontab内の文字列

文字列は、開発者のお気に入りのものの一つです。繰り返しの書き込みを排除することで、時間を節約するのに役立ちます。クーロンには、コマンドを迅速に作成するために使用できる特定の文字列があります:

  1. @hourly: 1時間ごとに実行します。つまり、「0 * * * *
  2. @midnight: 毎日1回実行します。つまり、「0 0 * * *
  3. @daily: 毎日の同じようなもの
  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ジェネレータユーティリティ を無料で生成することができます。

また、UbuntuのCronの使用方法に関する記事をこちらで読むこともできます。 そこには役立つリソースがあります。

Source:
https://www.tecmint.com/create-and-manage-cron-jobs-on-linux/