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 で反映する運用にすると安全。