8. Cron ジョブ

プロセスの利用率は重要ですが、ここで強力なLinux自動化ツールであるcronデーモンを紹介する良い機会です。このバックグラウンドサービスにより、特定の時刻や間隔でタスクを自動的に実行するようにタスクをスケジュールできます。これらのスケジュールされたタスクは、一般的にcronジョブとして知られています。これは、毎晩バックアップスクリプトを実行したり、週に一度一時ファイルをクリーンアップしたりするなど、定型的なアクションを自動化するのに非常に役立ちます。

Cron ジョブとは

毎朝新しいデスクトップ背景を設定するために/home/pete/scripts/change_wallpaperにあるスクリプトを実行するとします。毎日手動で実行する代わりに、それを実行するためにcronジョブを作成できます。スケジュールを定義することで、cronサービスにスクリプトをいつ実行するかを正確に伝えることができ、真の「設定したらあとは忘れる」ソリューションになります。

Crontab 構文の理解

cronジョブを作成するには、スケジュールと実行するコマンドを指定する必要があります。スケジュールは、コマンドの前に 5 つのフィールドで定義されます。

30 08 * * * /home/pete/scripts/change_wallpaper

左から右への 5 つの日時フィールドは次のとおりです。

  • 分 (Minute): 0-59
  • 時 (Hour): 0-23(24 時間形式)
  • 日 (Day of the month): 1-31
  • 月 (Month): 1-12
  • 曜日 (Day of the week): 0-7(0 と 7 は日曜日を表します)

フィールド内のアスタリスク(*)はワイルドカードとして機能し、「すべて」を意味します。上記の例では、スケジュール30 08 * * *は、cronに対し、毎日、毎月、毎曜日の午前 8 時 30 分にコマンドを実行するように指示しています。

Crontab を使用した Cron ジョブの管理

ユーザー固有の crontab ファイルを編集できるcrontabコマンドを使用して、個人のcronジョブを管理します。このファイルには、スケジュールしたすべてのcronジョブが保持されます。

cronジョブを追加または編集するには、-e(編集)フラグを使用します。これにより、デフォルトのテキストエディタで crontab ファイルが開きます。

crontab -e

ジョブ定義を追加してファイルを保存すると、cronは新しいスケジュールを自動的に読み取ります。crontab -lでアクティブなcronジョブを一覧表示したり、crontab -rですべて削除したりすることもできます。cronジョブを使用することは、Linux自動化に関心のある人にとって基本的なスキルです。

ログインして学習進捗を保存

サインイン

演習

練習あるのみです!このハンズオンラボは、Linux でタスクをスケジュールする方法についての理解を深めるのに役立ちます。

  1. Linux で at と cron を使用してタスクをスケジュールする - atatqatrm、およびcrontabを使用してジョブの作成、管理、削除を練習し、システム管理タスクの自動化に関する実践的な経験を積みます。

このラボは、このレッスンからの概念を実際のシナリオに適用し、Linux自動化に対する自信を構築するのに役立ちます。

クイズ

個人の cron ジョブを編集するためのコマンドは何ですか?(正確な小文字のコマンドとそのオプションを使用して回答してください。)