Como desabilitar tudo no crontab -l?

54

Eu só quero pausar tudo. Não execute nada listado em crontab -l .

    
por Alex 14.12.2009 / 23:34

9 respostas

51

crontab -e , em seguida, comente cada linha que você não deseja executar com # .

    
por 14.12.2009 / 23:39
108

Primeiro, faça o backup do crontab:

crontab -l > my_cron_backup.txt

Então você pode esvaziá-lo:

crontab -r

Para restaurar:

crontab my_cron_backup.txt
crontab -l
    
por 14.12.2009 / 23:41
59

Você tem acesso root? Apenas pause cron

sudo /etc/init.d/crond stop

Em seguida, reinicie-o quando estiver pronto

sudo /etc/init.d/crond start
    
por 14.12.2009 / 23:46
10

Se você estiver usando o vi como editor, basta digitar :%s/^/#/ no modo de comando. Em todas as linhas (%), ele substitui (s ///) o início da linha (^) por um hash (#).

    
por 15.12.2009 / 11:46
3

Não ficou satisfeito com as opções acima, uma vez que não eram apenas um revestimento.

Para desativar crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab

Para ativar crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab

exemplo de uso (editado para mostrar que não desativa os comentários)

$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^([^#])/# $1/;print'|crontab
$ crontab -l
# Comment
# 0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^#\s*([0-9*])/$1/;print'|crontab
$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

Testei isso no RHEL e no AIX, e deveria funcionar imediatamente sem precisar instalar nada

    
por 12.09.2014 / 12:31
2

No meu teste limitado, a configuração do shell para / bin / false funciona. Você ainda verá /opt/job.sh em execução nos seus registros, mas será noop:

SHELL=/bin/false

*/1 * * * *    root  /some/job.sh
    
por 13.10.2014 / 23:23
1

Em qualquer sabor do Unix / Linux que eu saiba:

mv /var/spool/cron  /var/spool/cron_is_disabled

Isto:

  • desativa crontabs de todos os usuários
  • mas não o sistema / etc / crontab (/etc/cron.daily. etc.)
  • persiste em uma reinicialização
  • é um verso, duh:)
por 05.11.2015 / 18:12
0

Eu recebi a ideia da resposta fornecida por @segaps

Para desativar:

crontab -l | awk '{print "# "$1}' | crontab

Para ativar:

crontab -l | cut -c 3- | crontab

O único problema com a solução fornecida pelo segaps é que ele irá remover o comentário das tarefas, que já foram comentadas pelo usuário.

    
por 29.06.2016 / 15:49
0

Para fazer isso, usando o nano como editor:

sudo env EDITOR=nano crontab -e

em seguida, comente cada linha que você não deseja executar com #

    
por 13.12.2017 / 22:32