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
Ok, então eu fiz o meu script, eu coloquei em /etc/cron.hourly
, então eu chmod 777
o arquivo, mas ele não será executado (automaticamente). Se eu executar manualmente, funciona bem. Preciso fazer mais alguma coisa?
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
As entradas em cron.hourly
são executadas pelo mecanismo de partes de execução ( man run-parts
para obter mais informações) . E run-parts
é exigente quanto aos nomes de arquivos que considera válidos.
Por exemplo, dar uma extensão ao seu script tornará isso inválido e fará com que o trabalho não seja executado. [a-zA-Z0-9_-]
são os caracteres válidos, então o '.' torna isso inválido.
Ao adicionar um trabalho a /etc/cron.hourly
(ou .daily
, .weekly
, etc), sempre teste depois que run-parts
irá executá-lo emitindo o comando:
run-parts --test /etc/cron.hourly
Se, ao executar este comando, ele mostrar seu arquivo, significa que funcionou. Caso contrário, se não mostrar nada, seu nome de arquivo não é válido.
Qual foi o nome do seu roteiro?
Seu problema provavelmente está nas permissões excessivamente abertas, que permitem que qualquer pessoa edite seu arquivo. Experimente 755
.
Examinar as entradas do cron na sua saída do syslog deve confirmar isso.
A resposta de DaithiF deve ser a resposta correta.
Além disso, meu script não tinha #!/bin/bash
na primeira linha. Mesmo que o script possa ser executado com a linha de comando, run-parts
rejeitou dizendo "Exec format error".
Alterar o nome do arquivo de scriptname.sh
para scriptname
e adicionar a #!/bin/bash
na primeira linha ativou meu script para ser executado a cada hora.
Quando você corre
crontab -l
esta tarefa está na lista?
se não, adicione-o
crontab -e
adicione esta linha
0 * * * * yourScript
se estiver nesta lista, tente adicionar o caminho da linguagem de programação ao topo do seu script
Exemplo:
bash: #!/bin/bash
Essas duas coisas sempre resolveram meus problemas:)
Tags command-line cron cron-jobs crontab