Disabilita l'opzione di rimozione di crontab nella CLI


13

Come disabilito un comando specifico, ad esempio crontab -r?

Mi è già successo due volte che l'ho eseguito per errore, perché la mia Echiave è accanto alla Rchiave. Quel piccolo errore di battitura è sufficiente e il tuo crontab è sparito.


2
Non dimenticare di fare il backup di file importanti!
wjandrea,

Certo, ho @daily zip -r /home/./scripts/cronjobs-all.zip / var / spool / cron / crontabs
user66638

Un sistema di controllo di revisione del codice sorgente come Mercurial o Git sarebbe anche per la gestione dei file di script e la protezione contro l'alterazione o la cancellazione accidentale. Non è nemmeno necessario un repository remoto per nessuno dei due. :-)
David Foerster,

Risposte:


16

Utilizzare un wrapper attorno al crontabcomando, ad esempio questa funzione farebbe:

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

Questa funzione controlla se -resiste nell'argomento di crontab; in tal caso, esce con il messaggio "r" not allowed, altrimenti esegue il comando.

Inseriscilo nel tuo ~/.bashrcper caricarlo al momento dell'inizializzazione di tutte le bashsessioni interattive .


27

Ti suggerisco di includere

alias crontab="crontab -i"

nel tuo ~/.bashrcfile (avvia una nuova shell prima del test!)

Ciò significa che ogni volta che si esegue crontab, si seleziona sempre l'opzione "-i". Se ora si dà il crontab -rcomando, viene elaborato in crontab -ir, che richiede prima di rimuovere il file crontab:

nick@serv2:~$ crontab -r
crontab: really delete nick's crontab? (y/n) n
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.