Désactiver l'option de suppression de crontab dans CLI


13

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

Il m'est déjà arrivé deux fois de le faire accidentellement, car ma Eclé est à côté de la Rclé. Cette petite faute de frappe suffit et votre crontab a disparu.


2
N'oubliez pas de faire des sauvegardes de fichiers importants!
wjandrea

Bien sûr, j'ai @daily zip -r /home/./scripts/cronjobs-all.zip / var / spool / cron / crontabs
user66638

Un système de contrôle de révision du code source comme Mercurial ou Git serait même pour la gestion des fichiers de script et la protection contre toute altération ou suppression accidentelle. Vous n'avez même pas besoin d'un référentiel distant pour l'un ou l'autre. :-)
David Foerster

Réponses:


16

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

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

Cette fonction vérifie s'il -rexiste 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 ~/.bashrcpour le charger lors de l'initialisation de toutes les bashsessions interactives .


27

Je vous suggère d'inclure

alias crontab="crontab -i"

dans votre ~/.bashrcfichier (lancez 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 crontab -rcommande, elle est traitée à crontab -ir, ce qui vous invite avant de supprimer le fichier crontab:

nick@serv2:~$ crontab -r
crontab: really delete nick's crontab? (y/n) n
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.