web-dev-qa-db-fra.com

Désactiver l'option remove de crontab dans la CLI

Comment désactiver une commande spécifique, par exemple crontab -r?

Il m'est déjà arrivé à deux reprises de courir par hasard parce que mon E la clé est à côté du R clé. Cette petite faute de frappe suffit et votre crontab est parti.

13
user66638

Utilisez un wrapper autour de la commande crontab, par exemple cette fonction ferait:

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

Cette fonction vérifie si -r existe dans l'argument de crontab; si c'est le cas, quitte avec le message "r" not allowed, sinon exécute la commande.

Mettez-le dans votre ~/.bashrc pour le charger à l'initialisation de toutes les sessions interactives bash.

16
heemayl

Je vous suggère d'inclure

alias crontab="crontab -i"

dans votre fichier ~/.bashrc (commencez un nouveau shell avant de tester!)

Cela signifie que chaque fois que vous exécutez crontab, vous sélectionnez toujours l'option "-i". Si vous donnez maintenant la commande crontab -r, elle est traitée à crontab -ir, ce qui vous invite à supprimer le fichier crontab:

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