Как изменить оболочку cron для OSX Leopard

У меня есть скрипт, который работает нормально, если я вызываю его из командной строки, используя Bash. Но когда cron пытается запустить его, происходит сбой с ошибкой "mysql: command not found".

Я думаю, это потому, что cron не использует bash в качестве оболочки, но я не могу понять, как заставить cron использовать bash.

Я попытался добавить это в начало скрипта:

#!/bin/bash

Но нет радости. Как заставить cron использовать bash в качестве оболочки? Я немного новичок в bash и cron, поэтому я могу упустить что-то простое. Я прочитал несколько сообщений о сбоях на сервере (ссылался бы на них все, но я не могу, новый пользователь) и попытался понять и применить информацию как можно лучше, плюс погуглил тонну, но застрял.

2 ответа

Лучше всего использовать абсолютные пути к командам в скриптах cron. так что вы не полагаетесь на какие-либо настройки PATH, которые вы, возможно, настроили.

Пулегиум прав, дело не в оболочке, а в ПУТИ. Когда cron запускается, он имеет очень ограниченный путь поиска, вместо mysql в вашей команде вы должны поставить /path/to/mysql с фактическим путем к исполняемому файлу. Обычно что-то вроде /usr/local/bin/mysql, Вам придется искать его, чтобы найти точный путь. Кроме того, если это проблема оболочки, в вашем файле cron вы можете запустить bash, а затем запустить ваш скрипт: /bin/bash /path/to/script.sh, это гарантирует, что bash обрабатывает файл.

Другие вопросы по тегам