Desativar a opção de remoção do crontab no CLI

11

Como desabilito um comando específico, por exemplo crontab -r ?

Aconteceu comigo duas vezes já que acidentalmente rodei isso, porque a minha tecla E está ao lado da tecla R . Esse pequeno erro de digitação é suficiente e sua crontab se foi.

    
por user66638 12.01.2017 / 19:34

2 respostas

15

Use um wrapper em torno do comando crontab , por exemplo, essa função faria:

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

Esta função verifica se -r existe no argumento crontab ; se assim for, sai com a mensagem "r" not allowed , caso contrário, executa o comando.

Coloque em seu ~/.bashrc para carregá-lo na inicialização de todas as sessões bash interativas.

    
por heemayl 12.01.2017 / 19:52
26

Sugiro que você inclua

alias crontab="crontab -i"

no seu arquivo ~/.bashrc (inicie um novo shell antes de testar!)

Isso significa que toda vez que você executar o crontab, você sempre selecionará a opção "-i". Se você agora der o comando crontab -r , ele será processado em crontab -ir , que solicita antes de remover o arquivo crontab:

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