web-dev-qa-db-ja.com

CLIでcrontabの削除オプションを無効にします

crontab -rなどの特定のコマンドを無効にするにはどうすればよいですか?

私が偶然それを走らせたのはすでに2回起こった E キーは隣にあります R キー。その小さなタイプミスで十分であり、crontabはなくなりました。

13
user66638

crontabcommandのラッパーを使用します。たとえば、この関数は次のようにします。

crontab () { [[ $@ =~ -[iel]*r ]] && echo '"r" not allowed' || command crontab "$@" ;}

この関数は、crontabの引数に-rが存在するかどうかを確認します。そうであれば、メッセージ"r" not allowedで終了し、そうでなければコマンドを実行します。

~/.bashrcに入れて、すべてのインタラクティブbashセッションの初期化時にロードされるようにします。

16
heemayl

含めることをお勧めします

alias crontab="crontab -i"

~/.bashrcファイルで(テストする前に新しいシェルを起動してください!)

これは、crontabを実行するたびに、常に「-i」オプションを選択することを意味します。 crontab -rコマンドを指定すると、crontab -irで処理され、crontabファイルを削除する前にプロンプ​​トが表示されます。

nick@serv2:~$ crontab -r
crontab: really delete nick's crontab? (y/n) n
27
Nick Sillito