estive intrigado com cronjobs nas últimas horas. Eu li documentação e exemplos. Entendo o básico e os conceitos, mas ainda não consegui fazer nada funcionar. Então, eu gostaria de receber ajuda com esse dilema total de noob.
O objetivo final é agendar a execução de uma função Django todos os dias. Antes de chegar tão longe, quero saber se posso agendar a execução de qualquer script antigo, primeiro uma vez e depois regularmente.
Então eu quero: 1) Escrever um script simples (talvez um script bash) que me permita determinar se sim, ele realmente foi executado com sucesso ou se falhou. 2) agende este script para ser executado no início da hora
Tentei escrever um script bash que simplesmente enviasse algum texto para o terminal:
#!/bin/bash
echo "The script ran"
Então coloquei isso em um arquivo .txt
MAILTO = *****.******@gmail.com
05 * * * * /home/vadmin/development/test.sh
Mas nada aconteceu. tenho certeza que simmuitoscoisas erradas. Por onde começo a consertar tudo isso?
Responder1
Não sei se você realmente conseguirá ver a saída do cron na tela assim.
Aposto que se você colocar
echo "the script ran" >> /home/vadmin/file.txt
No seu trabalho, verifique se o cron está rodando e se o crontab está instalado corretamente (como as outras respostas sugeriram), ele será executado conforme o esperado.
O cron que você especificou não será executado todos os dias, mas sim às 5 horas após cada hora.
Responder2
O seu daemon cron está realmente em execução? Verifique a tabela de processos.
Também pode haver um problema ao enviar os resultados por e-mail - verifique os logs do crond e seu servidor de e-mail local para isso.
Responder3
As linhas que você colocou em um arquivo .txt precisam ser adicionadas a umcrontab.
As práticas recomendadas indicam que você não edita o arquivo crontab diretamente, mas usa o crontab -e
comando que abrirá o crontab em um editor, permitirá editá-lo/salvá-lo, verificar se há erros de sintaxe e salvá-lo com segurança.
Além disso, uma peculiaridade do cron que pode existir no seu sistema é que, se a última linha do arquivo não for uma linha em branco, o cron ignorará a linha anterior. Certifique-se de adicionar pelo menos uma linha em branco no final do seu crontab.