Как изменить оболочку 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 обрабатывает файл.