crontab コマンドは、cron デーモンが定期的に実行するジョブ(タスク)をユーザーごとに登録・管理 するためのコマンドです。
バックアップやログ整理、定期処理などを自動化するのに利用されます。
構文(Syntax)
crontab [オプション] [ファイル]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 新しいジョブを標準入力から登録 | crontab |
-e | 現在のユーザーの crontab を編集 | crontab -e |
-l | 現在のユーザーの crontab を表示 | crontab -l |
-r | 現在のユーザーの crontab を削除 | crontab -r |
-i | -r と併用し、削除前に確認 | crontab -i -r |
-u USER | 指定ユーザーの crontab を操作(rootのみ使用可能) | sudo crontab -u alice -l |
cron ジョブの書式
crontab ファイルに書くジョブの形式は以下の通りです:
分 時 日 月 曜日 コマンド
- 分: 0–59
- 時: 0–23
- 日: 1–31
- 月: 1–12
- 曜日: 0–7 (0 と 7 は日曜日)
- コマンド: 実行するコマンドやスクリプト
特殊記号も利用できます:
*: 全て,: 複数指定(例:1,15)-: 範囲指定(例:1-5)/: ステップ(例:*/10は10分ごと)
実行例
自分の crontab を編集
crontab -e
例: 毎日午前2時にバックアップスクリプトを実行
0 2 * * * /home/alice/backup.sh
登録済みのジョブを確認
crontab -l
出力例:
0 2 * * * /home/alice/backup.sh
*/5 * * * * /home/alice/check.sh
ジョブを削除
crontab -r
削除時に確認付きで実行
crontab -i -r
root が他ユーザーのジョブを表示
sudo crontab -u bob -l
エラー例(権限不足で他ユーザーのジョブを確認)
crontab -u bob -l
出力例:
You (alice) are not allowed to use this program (crontab)
関連コマンド
systemctl status cron: cron サービスの稼働確認systemctl start cron: cron サービスを開始at: 単発でジョブを予約実行anacron: 実行されなかった cron ジョブを補完
備考
- cron ジョブの実行ログは通常
/var/log/cronまたは syslog (/var/log/syslog) に記録されます。 - cron 実行時の環境変数は対話シェルと異なるため、PATH が足りない場合はフルパスで記述する必要があります。
- 編集に使われるエディタは
$EDITOR環境変数で決まります(例:vim,nano)。 - root にはシステム全体の
/etc/crontabと/etc/cron.*ディレクトリも利用可能。
参考
- manページ: man7.org crontab(1)
- cron パッケージ: https://wiki.archlinux.org/title/Cron

コメント