Отключить опцию удаления crontab в CLI

Как отключить конкретную команду, например crontab -r?

Со мной уже дважды случалось, что я случайно запустил это, потому что моя клавиша E находится рядом с клавишей R. Этой маленькой опечатки достаточно, и ваш crontab ушел.

2 ответа

Решение

Используйте обертку вокруг crontabкоманда, например, эта функция будет делать:

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

Эта функция проверяет, если -r существует в аргументе crontab; если да, то выходит с сообщением "r" not allowed, иначе выполняет команду.

Поместите это в свой ~/.bashrc загрузить его при инициализации всего интерактивного bash сессий.

Я предлагаю вам включить

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
Другие вопросы по тегам