![ativar ou desativar facilmente o cron](https://rvso.com/image/568236/ativar%20ou%20desativar%20facilmente%20o%20cron.png)
Sempre que eu precisar habilitar o crons, copiarei o arquivo cron para a pasta spool.
cp /home/shantanu/shantanu /var/spool/cron/
chown shantanu:root /var/spool/cron/shantanu
Isso vai funcionar? Algum problema que eu possa enfrentar?
atualização: usando CentOS
Responder1
A maneira oficial de desabilitar alguns cron jobs para um usuário específico é digitar crontab -e -u <user>
e colocar um #
no início para comentar.
ATUALIZAR
Porque o arquivo cron fará parte do script Shell.
Experimente isto:
crontab -l -u shantanuo > shantanuo.cron
sed -i 's/^/#/' shantanuo.cron
crontab shantanuo.cron
rm -f shantanuo.cron
Responder2
Istopoderiatrabalhar.Mas..
Como diziam os pôsteres anteriores: Não faça isso. Usar crontab -e
. Editar diretamente os arquivos pode funcionar, mas não é uma prática robusta. Suas coisas podem quebrar a qualquer momento ao atualizar os componentes envolvidos. Além disso, não é muito portátil, outros sistemas podem armazenar os arquivos em um local diferente. É como implementar "printf" sozinho em vez de usar o iolib padrão.
Então, não faça assim.
editar: E se você precisar gerar o crontab com um script de shell, basta canalizar suas coisas crontab
(ele até conhece o pseudo-arquivo '-'! Leia a página de manual.).
Responder3
Por que não usar apenas command crontab -e
, ou se você estiver logado como root, crontab -e -u shantanu
?
Responder4
Se você deseja suspender trabalhos sem ter que reiniciar o cron (o que pode afetar a execução dos trabalhos, por exemplo, a cada 3 minutos), você pode usar arquivos de bloqueio, facilmente criados ou removidos em um script.
*/3 0 * * * [ ! -f /tmp/job.lock ] && /path/to/job
Então, para suspender o uso do trabalho:
touch /tmp/job.lock
Reinicie o agendamento no cron:
rm /tmp/job.lock
A beleza disso é que você pode usar arquivos de bloqueio diferentes para trabalhos diferentes (ou grupos de trabalhos, se todos usarem o mesmo arquivo de bloqueio) sem se preocupar em interromper o agendamento ou quebrar o cron devido a erros na edição (por script ou manualmente) do crontab .