Linux専門用語バスター:Linuxのcronジョブとは何ですか?

Linux Jargon Busterシリーズのこのパートでは、Linuxでのcronについて学習します。 また、crontabを編集して、cronジョブの作成の基本を学びます。

Linuxでのcronジョブとは何ですか?

Cronは、スケジュールに基づいて小さくて迅速なコマンドを実行するためのコマンドラインユーティリティです。 これは、他のツールと組み合わせてさまざまなタスクを自動化するための便利でクラシックなsysadminツールです。 にとって example、rsyncとcronを組み合わせて、特定の時間に毎日または毎週のバックアップを自動的に作成する人もいます。 サーバーログを分析し、メール機能と組み合わせて、ログに特定の種類のエラーが検出された場合に電子メールを送信するために使用する人もいます。

cronはスイスのアーミーナイフのようなものです。 さまざまなユースケースに使用できます。 それを何に使うかはあなたの想像力次第です。

cronの使用を開始するのは非常に簡単で、開始するのにほんの数秒しかかかりません。 しかし、それをお見せする前に、Linuxユーザーを混乱させることが多い他のことについて説明します。

cronとcronジョブとcrontab

互いに類似しているように聞こえる3つの用語、cron、cron job、およびcrontabに出くわす可能性があります。 それらが何であるかを簡単に説明しましょう。

cron:これは、システムにインストールしてデーモンとして実行する実際のプログラムです。

cronジョブ:Linuxのジョブは、稼働中のプログラムです。 Cronは複数のタスクを処理し、スケジュールされた時間にそれらを実行できます。 これらの各タスクは「cronジョブ」と呼ばれます。

crontab:これは、実行するタスクとその実行頻度を定義するファイル(およびコマンド)です。 crontabには、各行がcronジョブである表形式の複数のcronジョブを含めることができます。

サンプルのcronジョブを共有しましょう example これは1時間ごとに実行され、「Linuxはかっこいい!」と出力されます。 ファイル名crontab_log.txtに。

0 * * * * echo "Linux is Cool!" >> ~/crontab_log.txt

最も単純なcronジョブでさえ、恐ろしくて恐ろしいように見えるかもしれません。 これは、cronジョブを正しく読み取る方法を知る必要があるためです。

次のセクションでは、このcronの理論的知識を次のレベルに引き上げます。

cronの使用を開始する

(別の)単純なものから始めましょう example Cronがどのように機能するかについて。

cronジョブ、またはcronが実行するコマンドを作成するには、次のコマンドを実行するだけです。

crontab -e

次のファイルを使用してcronジョブを編集します。

Crontabのデフォルトビュー

で始まるすべての行 # (これがすべての行です)cronの使用方法をガイドするのに役立つだけであり、必要がない場合は削除できます。

ただし、最初のCronジョブとして次のものを使用します。

* * * * * touch ~/crontab_test

それが本当に速く何をするかを見てみましょう:

cronジョブは次の形式で提供されます minute hour day month week command

  • このコンテキストでは、単に1時間のうち何分でジョブが実行されるかを意味します。 したがって、指定する 0 1時間の初めに実行され、 5 1時間の5分に実行されます。
  • 次に、 時間 宣言は、値0〜23の範囲で、ジョブを実行できる1日の時間を指定しました。 ここに24時間のオプションがない理由は、 23 11:59の最後に移動します。その時点で、真夜中または1時間になります。 0 翌日の。 これと同じロジックが minute 前述の宣言。
  • ジョブを実行できる月の曜日を指定します。これは1〜31日です(前の例とは異なります)。 0)。
  • ジョブを実行できる月を指定し、1〜12の範囲の値を取ります。
  • 最後に、 最後の2つとは異なり、日曜日から始まる0〜6の値でジョブが実行される曜日を指定します。

次に、 指図 これは、実行したいコマンドです。

分、日、月、週の部分を理解するためにさらにサポートが必要な場合は、 クロンタブの第一人者 ウェブサイト。正確に何が起こっているのかを分析するのに大いに役立ちます。

前に続いて example の * * * * * touch〜 / crontab_test ただし、touch〜 / crontab_testを毎分実行するだけです。

それをcrontabに入れて、実際の動作を見てみましょう。

その後、次の1分まで待つと、ホームディレクトリにあるcrontab_testファイルが表示されます。

これがcronを使用するための基本です。

便利 example cronジョブの

それはあまりにも単純でした(そしておそらく役に立たない)。

システム上の複数のディレクトリから単一のフォルダにファイルをコピーし、そのバックアップを単一のファイルにアーカイブする必要があるバックアップスクリプトなど、もう少し複雑なことをしたいとします。

これは、コマンドをスクリプトに入れるだけで簡単に実行できます。スクリプトは、cronによって呼び出されます。

次のスクリプトを example:

#!/usr/bin/bash
echo "Backing up..."
mkdir -p ~/.local/tmp/
tar -Pc ~/Documents/ -f ~/.local/tmp/backup.gz

このスクリプトは次のことを行います。

  1. 〜/ .local / tmp / backup_dirディレクトリがシステムに存在することを確認します。
  2. 〜/ Documents /からすべてを〜/ .local / tmp /backup.gzにあるアーカイブに配置します。

最初にスクリプトを手動で実行して、実際に機能することを確認しましょう。

まず、次のようにスクリプトを〜/ backup_scriptに配置しましょう。

次に、上記のスクリプトの内容をファイルにコピーします。

次に、chmod + x〜 / backup_scriptを実行するだけで、スクリプトの実行が許可されていることをシステムに通知する必要があります。

次に、〜/ backup_script.shを実行してスクリプトをテスト実行できます。これにより、システムにスクリプトへのパスが通知されます。

次に、tar -xf〜 / .local / tmp / backup.gz -C output_dirを実行するだけで、このバックアップを復元できます。ここで、output_dirは、ファイルを保存するディレクトリです。

このスクリプトは、Cronを使用してスケジュールに基づいて実行できるようになりました。

にとって example、スクリプトを毎日午前3時に実行する場合は、cronで次の構文を使用できます。

0 3 * * * ~/backup_script

そして、バックアップが毎日作成されます。

まとめ

そして、それはcronジョブの紹介にすぎません。 デスクトップLinuxユーザーの多くのユースケースはわかりませんが、システム管理者によって広く使用されています。 もしそうなら、コメントセクションでいくつか提案してください。