2009-05-05 7 views
1

Я разработчик php с использованием capistrano с многоступенчатой ​​поддержкой для развертывания моего приложения на своих производственных серверах. Следовательно, у меня очень мало знаний о рубинах или рельсах.scheduling capistrano function using cron

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

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

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

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

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

задача «прод» не существует

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

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

Спасибо!

ответ

2

изменение

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

или

cd /your/app/path/  
cap prod flush