ブログに戻る
5月 23, 2026ガイド

Linuxサーバーでcronジョブを設定する方法

cronの構文、crontab編集、よくあるスケジュール例、VPSでの自動タスクのログ記録を学びます。

Linuxサーバーでcronジョブを設定する方法

cronはLinux標準のスケジューラで、バックアップ、キャッシュ削除、証明書チェックなどを定時実行できます。本ガイドではHiddenceサーバーでの使い方を説明します。

cronの構文

各行は5つの時間フィールドのあとにコマンドが続きます:

bash
# ┌──────── minute (0-59)
# │ ┌────── hour (0-23)
# │ │ ┌──── day of month (1-31)
# │ │ │ ┌── month (1-12)
# │ │ │ │ ┌─ day of week (0-7, 0 and 7 = Sunday)
# │ │ │ │ │
# * * * * * command

# Every day at 3:00 AM:
0 3 * * * /usr/local/bin/backup.sh

# Every 15 minutes:
*/15 * * * * /usr/local/bin/check.sh

crontabを編集

現在のユーザーは crontab -e。システムジョブは多くの場合 root で sudo を使います:

bash
# Edit your user crontab
crontab -e

# Edit root crontab
sudo crontab -e

# List current jobs
crontab -l
sudo crontab -l

よくある例

  • 0 2 * * * — 毎日午前2時にバックアップ
  • 0 */6 * * * — 6時間ごと
  • 0 0 * * 0 — 毎週日曜の深夜
  • */5 * * * * — 5分ごと(慎重に使用)
  • @reboot /path/script.sh — 再起動後に1回実行
  • @daily /usr/bin/certbot renew --quiet — 毎日Certbotチェック

ログとデバッグ

出力をログファイルにリダイレクトし、失敗を把握します:

bash
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1

# View cron execution in system log:
grep CRON /var/log/syslog   # Ubuntu
grep CRON /var/log/cron      # CentOS

ヒント

  • cronコマンドには絶対パスを使う
  • crontabに入れる前にスクリプトを手動でテスト
  • エラーメール用にcrontabでMAILTO=your@email.com(メール設定済みの場合)
  • 複雑な依存関係は新しいシステムではsystemdタイマーも検討
  • 重い処理を毎分実行しない — VPSが過負荷になる