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


13

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

У мене два рази траплялося, що я випадково запускаю це, бо мій Eключ знаходиться поруч із Rключем. Цього маленького друку достатньо, і ваш кронтаб пропав.


2
Не забудьте зробити резервні копії важливих файлів!
wjandrea

Звичайно, у мене @daily zip -r /home/./scripts/cronjobs-all.zip / var / spool / cron /
crontabs

Система контролю ревізії вихідного коду, наприклад 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.