🐧 Linux 総合学習プラットフォーム

crontab -e のつもりが crontab -r を押して、定期ジョブを全消去してしまった

症状(よく出るエラー)

crontab -l を実行すると no crontab for user と表示され、登録していた定期ジョブが跡形もなく消えている。確認プロンプトは出なかった。

原因

crontab -r は現在のユーザーの crontab を丸ごと削除するオプションで、キーボード上で e と r が隣にあるため打ち間違いが起きやすい。多くの環境では確認なしで即削除されるうえ、crontab はユーザーごとに1ファイルしかないため、消えると登録内容を思い出す以外に手がかりがなくなる。

直し方

システムによっては /var/spool/cron/crontabs/ユーザー名 のバックアップや、バックアップツールの世代に残っていることがあるので先に探す。cron が過去に実行したジョブは grep CRON /var/log/syslog(環境により journalctl -u cron)に残るため、そこからコマンドを復元できる場合が多い。再発防止として crontab -l > ~/crontab.backup を定期的に取り、編集は crontab -e ではなくバックアップファイルを編集して crontab ~/crontab.backup で反映する運用にすると安全。

▶ 学習アプリでしっかり学ぶ