ホーム > パッケージ・システム管理 > crontab

crontab コマンド完全ガイド: 繰り返し作業をスケジュールする方法

`crontab`は、Linux/Unixシステムでユーザーが指定した時間に特定のコマンドやスクリプトを定期的に実行するようにスケジュールするために使用されるコマンドです。システムのメンテナンス、バックアップ、データの同期など、繰り返し作業を自動化する際に非常に重要な役割を果たします。

crontab 概要

crontabは'cron table'の略で、ユーザーのスケジュールされた作業を含むファイルです。このファイルの各行は1つの作業(job)を定義し、cronデーモンがこのファイルを読み取り、指定された時間に作業を実行します。

crontab フィールド構造

crontabファイルの各行は6つのフィールドで構成されています。最初の5つのフィールドは実行時間を定義し、最後のフィールドは実行するコマンドを定義します。

時間指定フィールド詳細
フィールド 説明 範囲
1 分(Minute) 0-59
2 時間(Hour) 0-23
3 日(Day of month) 1-31
4 月(Month) 1-12
5 曜日(Day of week) 0-7 (0と7は日曜日)
6 コマンド 実行するコマンドまたはスクリプト

特殊文字

時間フィールドに使用される特殊文字を活用して、より柔軟に時間を指定できます。

  • `*`: すべての時間 (例: 毎分、毎時)
  • `,`: 複数の値指定 (例: `1,3,5` -> 1, 3, 5分)
  • `-`: 範囲指定 (例: `10-15` -> 10分から15分まで)
  • `/`: 間隔指定 (例: `*/10` -> 10分ごと)

主要オプション

crontabコマンドの核心機能であるcrontabファイル管理オプションを見てみましょう。

1. crontabファイル管理

2. ユーザー管理

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`crontab` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

よく使われる例

crontabを活用してさまざまな繰り返し作業を設定する方法を学びましょう。

毎日午前2時30分にバックアップスクリプト実行

crontab -e
30 2 * * * /home/user/backup.sh

`/home/user/backup.sh`スクリプトを毎日午前2時30分に実行するように設定します。

毎週月曜日8時にシステムアップデート

crontab -e
0 8 * * 1 sudo apt update && sudo apt upgrade -y

毎週月曜日午前8時にシステムパッケージを更新します。(Ubuntu/Debian基準)

10分ごとにログファイル整理

crontab -e
*/10 * * * * echo '' > /var/log/app.log

10分間隔で`/var/log/app.log`ファイルの内容を削除します。

特定の時間にウェブサーバー再起動

crontab -e
0 4 1 * * sudo systemctl restart nginx

毎月1日午前4時にウェブサーバー(nginx)を再起動します。

毎日午前6時から午後6時まで毎時作業実行

crontab -e
0 6-18 * * * /path/to/myscript.sh

午前6時から午後6時まで毎時正時に`myscript.sh`を実行します。

crontab インストール (必要な場合)

ほとんどのLinuxディストリビューションに基本的にインストールされていますが、一部の最小インストール環境ではcronデーモンパッケージをインストールする必要があるかもしれません。

Debian/Ubuntu

sudo apt update
sudo apt install cron

UbuntuまたはDebianベースのシステムでcronデーモンをインストールします。

CentOS/RHEL/Fedora

sudo yum install cronie
sudo systemctl enable crond
sudo systemctl start crond

CentOS、RHELまたはFedoraベースのシステムでcronデーモンをインストールします。


関連するコマンド

機能的に類似しているか、よく一緒に使われるコマンドです。


同じカテゴリのコマンド