планирование функции capistrano с помощью cron

Я разработчик php, использующий capistrano с многоэтапной поддержкой для развертывания моего приложения на моих рабочих серверах. Следовательно, у меня очень мало знаний о ruby ​​или rails.

Я понял достаточно, чтобы добавить новую функцию под названием «flush» в мой сценарий deploy.rb, который вызывает сценарий php на всех моих рабочих серверах. Целью «flush» является подключение к каждому производственному серверу и выполнение php-скрипта, который записывает все журналы из локальных таблиц mysql каждого сервера в мою основную базу данных.

Я уверен, что функция работает, так как выполнение ее из командной строки (cap prod flush) дает точные результаты.

Я хотел бы запланировать задание cron, которое вызывает эту функцию каждый час. Для начала я написал bash-скрипт, который выполняет функцию:

!#/bin/bash
`/usr/bin/cap prod flush`

Однако, когда задание cron запускает сценарий, оно возвращает мне по электронной почте следующую ошибку:

задача 'prod' не существует

Я считаю, что проблема в том, что при запуске cron скрипт не выполняется в нужном каталоге. Я пытался изменить переменные $PATH и $HOME в сценариях bash, но не могу заставить их работать.

Может ли кто-нибудь предложить мне помощь?

Спасибо!


person Community    schedule 05.05.2009    source источник


Ответы (1)


изменить на

cd /path/where/deploy.rb/exists
cap prod flush

or

cd /your/app/path/    
cap prod flush
person Rafael Mueller    schedule 05.05.2009