cronの実行結果を記録・通知する方法|失敗に気づく仕組み
最終更新: 2026-07-19
cronの怖いところは「失敗しても誰も気づかない」ことです。バックアップが数ヶ月止まっていた、という事故はここから起きます。実行結果を残し、失敗に気づける仕組みを作りましょう。
まず出力をログに残す
コマンドの標準出力・標準エラーをファイルに追記すれば、後から原因を追えます。
# 標準出力とエラーの両方をログに追記
0 3 * * * /path/to/backup.sh >> /var/log/backup.log 2>&12>&1はエラー出力も同じログに送る指定です。これがないとエラーだけ捨てられ、「ログを見ても原因が分からない」状態になります。
成否を判定する
コマンドの終了ステータス($?が0なら成功)で成否を判定できます。失敗時だけ通知すれば、正常時に大量のメールが来る煩わしさを避けられます。
0 3 * * * /path/to/backup.sh >> /var/log/backup.log 2>&1 || echo "backup failed" | mail -s "cron NG" [email protected]失敗を通知する選択肢
- メール:サーバーにMTAがあれば
mailコマンドで送れる。cronはMAILTO変数でも通知先を指定可能。 - チャット:Slack/Discord等のWebhookにcurlでPOSTすると、失敗時にチャットへ飛ばせる。
- 外部監視:定期実行が「来なかった」ことを検知するデッドマンスイッチ型サービス(cronの死活監視)を使う手もある。
「動いているつもり」を防ぐ
そもそも起動しているかは、まずcronが動かない時のチェックリストで切り分けられます。式の意味に不安があればcron式ツールで次回実行時刻を確認しておきましょう。
設定した式が意図どおりの時刻に動くかを、日本語の解説と次回実行時刻で確認できます。
cron式を確認する