crontab -e
, em seguida, comente cada linha que você não deseja executar com #
.
Eu só quero pausar tudo. Não execute nada listado em crontab -l
.
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
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
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 (#).
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
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
Em qualquer sabor do Unix / Linux que eu saiba:
mv /var/spool/cron /var/spool/cron_is_disabled
Isto:
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.
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 #