crontab -r で間違って削除しないようにする対策

2021-06-22

概要

Linuxのサーバーを運用していると「crontab -e」とタイプするつもりが間違って「crontab -r」とタイプして、crontabの内容を削除しようになったりしてヒヤッとした経験は無いでしょうか
最近、会社の後輩がうっかりこのミスをしてしまいました。
キーボードの配列で「e」と「r」て隣同士だし間違いそうになるのはわかるけど、ミスは防ぎようがないので、crontab -rコマンドをうてば、「YES or NO」の確認メッセージを出せような設定にする方法を紹介します。

crontab -r で、間違って削除した時のコマンド例

crontab -e と crontab -r を打ち間違った場合は、以下の様になります

# crontabを編集
$ crontab -e
crontab: installing new crontab
# crontabを間違って削除
$ crontab -r
$ crontab -l
no crontab for hoge

crontab -r で、間違って削除しない対策

crontab -r のコマンドを無効にすることができませんでは、コマンドを実行時に、「crontab -r」と入力すると「crontab -ir」 となるように設定すれば、間違って削除のコマンドを実行しても「crontab: really delete hoge’s crontab? (y/n) 」と表示されば「YES」を選択しないと削除できないので、間違って削除する事が減るかと思います

※ /etc/bashrc にエイリアスを書いていますが、ユーザーの環境ファイル「.barhrc」でもOKです

$ sudo vi /etc/bashrc
alias crontab="crontab -i"
# 実際に「crontab -r」を実行してみます
$ crontab -r
crontab: really delete hoge's crontab? (y/n)

crontab バックアップ

確認メッセージを出るようにしましたが、間違って「YES」を選択する可能性があるので、過去の記事の「cron 内容のバックアップ 」で紹介したように、cronでcrontab の内容をファイルに書き出せば間違って削除しても復元は可能です

$ crontab -e
# 深夜3時にcronの内容をユーザーディレクトリにバックアップ
00 03 * * * crontab -l > ~/crontab.bak

LinuxCentOS 6,CentOS 7

Posted by admin