como alterar o shell do cron para OSX Leopard

como alterar o shell do cron para OSX Leopard

Eu tenho um script que funciona bem se eu invocá-lo na linha de comando, usando Bash. Mas quando o cron tenta executá-lo, ele falha com um erro “mysql: comando não encontrado”.

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

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? Sou meio novo no bash e no cron, então posso estar faltando algo simples. Eu li vários posts de serverfault (faria um link para todos eles, mas não consigo, novo usuário) e tentei entender e aplicar as informações da melhor maneira que pude, além de pesquisar muito no Google, mas não consegui.

Responder1

Pulegium está certo, o problema não é o tipo de shell, é o PATH. Quando o cron é executado, ele tem um caminho de pesquisa muito limitado; em vez de inserir mysqlseu comando, você deve colocar /path/to/mysqlo 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, em seu arquivo cron você poderia executar bash e, em seguida, executar seu script: /bin/bash /path/to/script.sh, isso garantiria que bash fosse o responsável pelo processamento do arquivo.

Responder2

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

informação relacionada