crontab – 定期的にコマンドやスクリプトを実行する設定コマンド

定期実行

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.* ディレクトリも利用可能。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント