使用cron调度capistrano函数

时间:2009-05-05 18:28:09

标签: cron capistrano

我是一名使用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变量,但我似乎无法让它工作。

有人可以给我帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

更改为

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

cd /your/app/path/    
cap prod flush