Я разработчик 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, но не могу заставить их работать.
Может ли кто-нибудь предложить мне помощь?
Спасибо!