プロセスの利用率は重要ですが、ここで強力な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自動化に関心のある人にとって基本的なスキルです。