1

我是一名 php 开发人员,使用具有多级支持的 capistrano 将我的应用程序部署到我的生产服务器。因此,我对 ruby​​ 或 rails 的了解很少。

我已经想出足够的方法在我的 deploy.rb 脚本中添加一个名为“flush”的新函数,该脚本在我的所有生产服务器上调用一个 php 脚本。'flush' 的目的是连接到每个生产服务器并执行一个 php 脚本,该脚本将每个服务器的本地 mysql 表中的所有日志写入我的主数据库。

我确信该功能有效,因为从命令行(cap prod flush)执行它会产生准确的结果。

我想安排一个每小时调用此函数的 cron 作业。首先,我编写了一个执行该函数的 bash 脚本:

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

但是,当 cron 作业运行脚本时,它会通过电子邮件向我发送以下错误:

任务“产品”不存在

我相信问题是当 cron 运行时,它没有在正确的目录中执行脚本。我尝试在 bash 脚本中更改 $PATH 和 $HOME 变量,但我似乎无法让它工作。

谁能给我帮助?

谢谢!

4

1 回答 1

2

改成

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

或者

cd /your/app/path/    
cap prod flush
于 2009-05-05T18:33:01.230 回答