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デーモンをインストールします。