como alterar o shell cron para o OSX Leopard

3

Eu tenho um script que funciona bem se eu invocá-lo a partir da linha de comando, usando o Bash. Mas quando o cron tenta executá-lo, ele falha com um erro "mysql: command not found".

Acho que isso acontece porque o cron não está usando o bash como shell, mas não consigo descobrir como fazer o cron usar o bash.

Eu tentei adicionar isso ao topo do script:

#!/bin/bash

Mas sem alegria. Como faço para forçar o cron a usar o bash como shell? Eu sou meio novo para bash e cron, então posso estar perdendo algo simples. Eu li vários posts de serverfault (ligaria para todos eles, mas não posso, novo usuário) e tentei entender e aplicar as informações da melhor maneira possível, além de procurar no Google por uma tonelada, mas estou preso.

    
por Jared Henderson 27.01.2010 / 16:03

2 respostas

2

Pulegium está certo, não é o tipo de casca que é o problema, é o PATH. Quando o cron executa, ele tem um caminho de pesquisa muito limitado, em vez de colocar mysql no seu comando, você deve colocar /path/to/mysql com o caminho real para o executável. Geralmente algo como /usr/local/bin/mysql . Você terá que procurá-lo para encontrar o caminho exato. Além disso, se fosse um problema de shell, no seu arquivo cron você poderia executar o bash e, em seguida, executar o script: /bin/bash /path/to/script.sh , isso garantiria que o bash fosse o único que processava o arquivo.

    
por 27.01.2010 / 16:22
3

é melhor usar caminhos absolutos para comandos em scripts cron. para que você não dependa de nenhuma configuração do PATH que possa ter personalizado.

    
por 27.01.2010 / 16:05