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: 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
  • USERNAME: replace this with your username
  • /path/to/command – The name of the script or command you want to schedule

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

  1. Asterisk (*): specifies all possible values for a field
  2. The comma (,): specifies a list of values
  3. Dash (-): specifies a range of values
  4. Separator (/): specifies a step value

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ジョブをリストします。

# crontab -l
OR
# crontab -u username -l

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

# crontab -r

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

# crontab -r -u username

クロンタブの弦

文字列は、繰り返し書くことを排除することで時間を節約するのに役立つので、開発者のお気に入りのものの1つです。 Cronには、コマンドをすばやく作成するために使用できる特定の文字列があります。

  1. @hourly: Run once every hour i.e. “0 * * * *
  2. @midnight: Run once every day i.e. “0 0 * * *
  3. @daily: same as midnight
  4. @weekly: Run once every week, i.e. “0 0 * * 0
  5. @monthly: Run once every month i.e. “0 0 1 * *
  6. @annually: Run once every year i.e. “0 0 1 1 *
  7. @yearly: same as @annually
  8. @reboot: Run once at every startup

例えば、これはあなたのシステムを毎日バックアップする方法です:

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

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

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

Crontabがどのように機能するかについて十分に理解したら、無料のcrontabラインを生成するためにこれらの気の利いたCrontabジェネレータユーティリティを使用することができます。

また、UbuntuのCronの使い方の記事もここで読むことができます。それはあなたが役に立つと思うかもしれないリソースを持っています。