Ok, então eu fiz o meu script, /etc/cron.hourlycoloquei chmod 777o arquivo no arquivo, mas ele não será executado automaticamente. Se eu executá-lo manualmente, ele funciona bem. Preciso fazer mais alguma coisa?
Ok, então eu fiz o meu script, /etc/cron.hourlycoloquei chmod 777o arquivo no arquivo, mas ele não será executado automaticamente. Se eu executá-lo manualmente, ele funciona bem. Preciso fazer mais alguma coisa?
Respostas:
Por que não usar o crontab (/ etc / crontab) e usar * / 1 no campo hora. Eu usei isso para executar um script a cada 5 minutos e funciona bem:
# m h dom mon dow user command
* */1 * * * user command
cron.dailye amigos funciona um pouco melhor se a máquina não estiver funcionando o tempo todo, porque o anacron tenta aproximar o cronograma correto, enquanto o cron simples simplesmente não os executará se a máquina não estiver ligada a noite toda. Para trabalhos horários, isso provavelmente não importa tanto.
/etc/crontab : cron.daily, cron.weeklye cron.monthly correr com anacron (se disponível), mas por hora run-parts --report /etc/cron.hourly.
As entradas em cron.hourlysão executadas pelo mecanismo de peças de execução ( man run-partspara obter mais informações). E run-partsé exigente quanto aos nomes de arquivos que considera válidos.
Por exemplo, atribuir uma extensão ao seu script o tornará inválido e resultará na execução da tarefa. [a-zA-Z0-9_-]são os caracteres válidos, então o '.' torna inválido.
Ao adicionar um trabalho a /etc/cron.hourly(ou .daily, .weeklyetc), sempre teste depois que run-partsrealmente o executará emitindo o comando:
run-parts --test /etc/cron.hourly
Se executando este comando, ele mostra seu arquivo, significa que funcionou. Caso contrário, se não mostrar nada, seu nome de arquivo não será válido.
Qual era o nome do seu script?
giving your script an extension will make it invalid and result in the job not being run
--reportpara realmente executar os scripts.
A resposta do DaithiF deve ser a resposta certa.
Além disso, meu script não tinha #!/bin/bashna primeira linha. Mesmo que o script pudesse ser executado com a linha de comando, o run-partsrejeitou dizendo "Erro de formato Exec".
Alterar o nome do arquivo de scriptname.shpara scriptnamee adicionar a #!/bin/bashprimeira linha permitiu que meu script fosse executado a cada hora.
Quando você corre
crontab -l
esta tarefa está na lista?
caso contrário, adicione-o
crontab -e
adicione esta linha
0 * * * * yourScript
se estiver nesta lista, tente adicionar o caminho da linguagem de programação na parte superior do seu script
Exemplo:
bash: #!/bin/bash
Essas 2 coisas sempre resolviam meus problemas :)