banner
三文字

方寸之间

居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
github
email
mastodon
website

LinuxのCronコマンドの概要

Cron は Linux で非常に便利なツールであり、開発者のお気に入りのツールです。なぜなら、一般的なスクリプトやタスク固有のスクリプトを使用して、特定の時間帯、日付、および間隔でコマンドを自動的に実行できるからです。この説明を持っていると、システム管理者がバックアップタスク、ディレクトリのクリーンアップ、通知などを自動化するためにどのように使用するかを想像することができます。

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

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

cron ジョブを作成および編集するコマンドは同じであり、非常に簡単です。さらに、新しいファイルを作成したり既存のファイルを編集した後に cron を再起動する必要はありません。

$ crontab -e

Cron の構文#

cron の構文を理解すると、cron の使用ははるかに簡単になります。cron の構文には 2 つの形式があります:

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

上記の cron の構文の説明:

  • A:分の範囲:0 – 59
  • B:時の範囲:0 – 23
  • C:日の範囲:1 – 31
  • D:月の範囲:1 – 12またはJAN-DEC
  • E:曜日の範囲:0 – 6またはSUN-SAT,Sunday=0 or 7
  • USERNAME: ユーザー名
  • /path/to/command – スケジュールしたいスクリプトまたはコマンドの名前

イメージで表現すると:

┌───────────── 分 (0 - 59)
│ ┌───────────── 時 (0 - 23)
│ │ ┌───────────── 日 (1 - 31)
│ │ │ ┌───────────── 月 (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── 曜日 (0 - 6 or SUN-SAT, Sunday=0 or 7)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * *

さらに、Cron は 3 つの演算子を使用して、フィールドに複数の値を指定できます:

  1. アスタリスク(*):フィールドのすべての可能な値を指定します。* * * * *は毎日のすべての分に実行されます。
  2. カンマ(,):値のリストを指定します。2,10 4,5 * * *は毎日の 4 時と 5 時の 2 分と 10 分に実行されます。
  3. ハイフン(-):値の範囲を指定します。0 4-6 * * *は 4 時、5 時、6 時の 0 分に実行されます。
  4. スラッシュ(/):ステップ値を指定します。20/15 * * * *は 20 分から 59 分まで 15 分ごとに実行されます(20 分、35 分、50 分)。

これが 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
# または
crontab -u username -l

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

crontab -r

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

crontab -r -u username

Crontab の文字列#

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

  1. @hourly:毎時実行、つまり "0 * * * *"
  2. @midnight:毎日実行、つまり "0 0 * * *"
  3. @daily:午前 0 時と同じ
  4. @weekly:毎週実行、つまり "0 0 * * 0"
  5. @monthly:毎月実行、つまり "0 0 1 * *"
  6. @annually:毎年実行、つまり "0 0 1 1 *"
  7. @yearly@annuallyと同じ
  8. @reboot:起動時に実行

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

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

これで、システムタスクを作成および管理するために Cron を使用するために必要なすべての情報を持っています。これで、スケジュールされたコマンドを使用して複数の環境を設定および維持することができます。

Crontab の動作方法について十分に理解したら、これらの素晴らしいCrontab ジェネレータツールを使用して、無料で crontab 行を生成できます。

また、こちらで Ubuntu の Cron の使用方法に関する記事を読むこともできます。

参考#

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

https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows


私の個人ブログ方寸之间へようこそ

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。