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


13

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

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


2
Не забудьте сделать резервные копии важных файлов!
17

Конечно, у меня есть @daily zip -r /home/./scripts/cronjobs-all.zip / var / spool / cron / crontabs
user66638

Система контроля версий исходного кода, такая как Mercurial или Git, была бы даже для управления файлами сценариев и защиты от случайного изменения или удаления. Вам даже не нужен удаленный репозиторий ни для одного из двух. :-)
Дэвид Фёрстер

Ответы:


16

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

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

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

Вставьте его в свой, ~/.bashrcчтобы загрузить его при инициализации всех интерактивных bashсеансов.


27

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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.