LinuxのCronで自動化入門|crontab設定・ジョブ管理を現役IT講師が解説

現場実践|Linux自動化
LinuxのCronで自動化入門
crontab設定・ジョブ管理を解説
「定期的にスクリプトを自動実行したい」——Linuxの定番ジョブスケジューラ「Cron」の設定方法とよくあるエラーの対処法を実務目線で解説します。
💡 Cronはインフラエンジニアが最初に覚えるべき自動化ツール。ログローテート・バックアップ・監視スクリプトの定期実行など、現場で毎日使われています。
1. Cronとは
まず、Cronはタスクを指定した日時・間隔で自動実行するLinuxの標準デーモンです。crontabファイルにジョブ(実行するコマンド)とスケジュールを記述して管理します。
2. crontabの書き方
# 書式: 分 時 日 月 曜日 コマンド
# 分(0-59) 時(0-23) 日(1-31) 月(1-12) 曜日(0-7, 0と7は日曜)
# 毎日 23:00 に backup.sh を実行
0 23 * * * /home/user/scripts/backup.sh
# 毎時0分に実行
0 * * * * /home/user/scripts/check.sh
# 毎週月曜 9:00 に実行
0 9 * * 1 /home/user/scripts/weekly_report.sh
# 毎分実行(テスト用)
* * * * * /home/user/scripts/test.sh3. よく使うサンプル
| 用途 | crontab記述 |
|---|---|
| ログの日次ローテート | 0 0 * * * /usr/sbin/logrotate /etc/logrotate.conf |
| バックアップスクリプト(毎日23時) | 0 23 * * * /home/ec2-user/backup.sh >> /var/log/backup.log 2>&1 |
| 死活監視スクリプト(5分ごと) | */5 * * * * /home/ec2-user/health_check.sh |
4. 実務Tips
- crontab -e でユーザーのcrontabを編集:sudo crontab -e でrootのcrontabを編集
- crontab -l で現在の設定を確認:設定を確認してから変更する習慣をつける
- 出力はログにリダイレクト:
>> /var/log/cron_job.log 2>&1でstdoutとstderrを記録する - コマンドはフルパスで記述:CronはPATHが限定されるため
/usr/bin/python3のようにフルパスで書く
5. よくあるエラーと対処法
Q. Cronが実行されているはずなのに動かない
対処法:(1) コマンドをフルパスで書いているか確認 (2) シェルスクリプトに実行権限(chmod +x)があるか確認 (3) /var/log/cron(またはsyslog)でCronのログを確認
Q. メールが大量に届く
対処法:crontabの行末に
> /dev/null 2>&1を追加してメール送信を無効化する📌 この記事のポイント
- crontabは「分 時 日 月 曜日 コマンド」の5フィールドで時間を指定する
- コマンドはフルパスで記述・出力はログにリダイレクトするのが実務の基本
- 動かない場合は/var/log/cronでエラーログを確認する
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




