現場実践|Linux自動化

LinuxのCronで自動化入門
crontab設定・ジョブ管理を解説

「定期的にスクリプトを自動実行したい」——Linuxの定番ジョブスケジューラ「Cron」の設定方法とよくあるエラーの対処法を実務目線で解説します。

読了目安:約15分更新日:2026年3月

💡 Cronはインフラエンジニアが最初に覚えるべき自動化ツール。ログローテート・バックアップ・監視スクリプトの定期実行など、現場で毎日使われています。

この記事を書いた人
現役ITエンジニア・IT講師(経験14年)
CCNA・CCNP 取得LPIC-1 保有AzureFundamentals 保有SES現場を複数経験

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.sh

3. よく使うサンプル

用途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月からフリーランス講師として本格始動予定です。

※設定構文はLinuxディストリビューション・バージョンにより異なります。

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:経営/個人事業/アパレル