Respostas:
Primeiro, faça backup do crontab:
crontab -l > my_cron_backup.txt
Então você pode esvaziá-lo:
crontab -r
Restaurar:
crontab my_cron_backup.txt
crontab -l
crontab -r
é o que eu estava procurando. Obrigado !
Você tem acesso root? Apenas pause o cron
sudo /etc/init.d/crond stop
Em seguida, reinicie-o quando estiver pronto
sudo /etc/init.d/crond start
sudo service cron stop
/etc/init.d/cron stop
.
service cron stop
.
Se você estiver usando o vi como editor, basta entrar :%s/^/#/
no modo de comando. Em todas as linhas (%), ele substitui (s ///) o início da linha (^) por um hash (#).
EDITOR=vi; crontab -e
e, em seguida , usar o truque acima.
:%s/^#//
Não ficou satisfeito com as opções acima, pois elas não eram únicas.
Desabilitar crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab
Para habilitar crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab
exemplo de uso (editado para mostrar que não desativa 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 deve funcionar imediatamente, sem que seja necessário instalar nada
crontab: usage error: file name must be specified for replace
. Parece que você precisa especificar um arquivo (?) Ao usá-lo crontab
sem nenhum parâmetro (que é o replace
padrão).
Eu recebi a ideia da resposta fornecida por @segaps
Desabilitar:
crontab -l | awk '{print "# "$1}' | crontab
Para habilitar:
crontab -l | cut -c 3- | crontab
O único problema com a solução fornecida pelo segaps é que ele descomente os trabalhos, que já são comentados pelo usuário.
/tmp
está corrompido (e se o seu crontab -e usamktemp
no/tmp
.