我是一名使用capistrano的php开发人员,具有多级支持,可以将我的应用程序部署到我的生产服务器。因此,我的红宝石或铁轨知识很少。
我已经想出足够的东西在我的deploy.rb脚本中添加一个名为'flush'的新函数,该脚本在我的所有生产服务器上调用php脚本。 'flush'的目的是连接到每个生产服务器并执行一个php脚本,该脚本将每个服务器的本地mysql表中的所有日志写入我的主数据库。
我确信该函数可以正常工作,因为从命令行执行它(cap prod flush)会产生准确的结果。
我想安排一个每小时调用此函数的cron作业。首先,我编写了一个执行函数的bash脚本:
!#/bin/bash
`/usr/bin/cap prod flush`
但是,当cron作业运行脚本时,它会通过电子邮件向我发送以下错误:
任务'prod'不存在
我认为问题是当cron运行时,它没有在正确的目录中执行脚本。我已经尝试在bash脚本中更改$ PATH和$ HOME变量,但我似乎无法让它工作。
有人可以给我帮助吗?
谢谢!
答案 0 :(得分:2)
更改为
cd /path/where/deploy.rb/exists
cap prod flush
或
cd /your/app/path/
cap prod flush