Eu configurei um arquivo crontab do usuário da seguinte maneira:
*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh
Mas não será executado. Eu esperei por 10 a 15 minutos. Por quê?
O comando auto-update.sh é executado facilmente se executado manualmente. Como posso separar a cadeia de execução e executar meu script no cron?
KeepAlive
eQueueDirectories
).Respostas:
O ambiente em que um trabalho cron é executado é um pouco diferente de um shell interativo; é provável que o script esteja sendo executado, mas não com êxito. Uma das maiores diferenças é que, para tarefas agendadas, o PATH padrão é apenas "/ usr / bin: / bin"; portanto, se você usar algum comando que não esteja em / usr / bin ou / bin, eles não serão encontrado, a menos que seu script defina seu próprio PATH ou forneça caminhos explícitos aos comandos. A outra grande diferença é simplesmente que ela não está conectada a uma sessão interativa; portanto, se tentar fazer algo interativo (lido no terminal, etc.) que irá falhar. Tente alterar a entrada cron para:
... e veja se algo informativo aparece no log.
fonte
ps -ax | grep [c]ron
e veria se ele lista o daemon cron (/ usr / sbin / cron) em execução. Se for, tente o teste do logger da bmike. De qualquer forma, verifique os logs (/var/log/system.log e o item "Todas as mensagens" no utilitário Console) e veja se há algo de relevante.É difícil dizer, mas e se você incluísse um segundo trabalho cron para executar a cada 5 minutos mais ou menos e chamasse alguma ferramenta criada pelo sistema que registre mensagens no system.log?
Dessa forma, você saberá que o cron está sendo executado para o usuário em questão e pode se concentrar em iniciar o cron ou corrigir seu script para que ele seja executado no ambiente cron limitado. (Você pode olhar para o relógio de parede e selecionar algumas vezes em breve ou até os próximos minutos - por exemplo, editar às 12:34, inserir 35,36,37,38 nos minutos para executar e salvar o arquivo cron .)
fonte
Já faz um tempo que você fez essa pergunta, mas parece que nenhuma solução surgiu nesta discussão.
Dependendo da maneira como você cria um user-crontab, pode ser necessário executá-lo após editá-lo:
Para ver se o novo crontab (também após modificá-lo) foi ativado, verifique com:
fonte
Eu tive o mesmo problema. Você precisa adicionar o caminho ao seu script bash:
fonte
Eu tive o mesmo problema. Ele desapareceu depois que adicionei uma nova linha após o meu trabalho no meu arquivo crontab (sou um crontab n00b total, portanto não faço ideia se esse comportamento é amplamente conhecido ou não).
fonte