Назад | Перейти на главную страницу

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

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

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

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

#!/bin/bash

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

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

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