2016-07-25 61 views
0

我有以下命令在crontab中,當我在終端運行此命令時,它工作正常,但當我在crontab中運行這個正在以下錯誤crontab的拋出錯誤

* * * * * cd /home/path/application && RAILS_ENV=development ./bundle exec rake namespacefolder:rake_file 

錯誤:

bundler: command not found: rake 
Install missing gem executables with `bundle install` 

有人請幫忙。

+0

什麼措辭可能比'bundler'已經給你的更清楚? **使用'bundle install' **安裝缺少的gem可執行文件。 – mudasobwa

回答

0

嘗試如果不與捆

* * * * * /bin/bash -l -c "cd ~/home/path/application && RAILS_ENV=development bundle exec rake namespacefolder:rake_file" 

/斌/慶典

指定用於執行所述命令

-c

哪個程序解決了這一處理完畢後,從第一個非選項參數中讀取並執行命令唱歌的選項,然後退出。任何剩餘的參數都被賦值給位置參數,從$ 0開始。

-l

讓這個殼的行爲就好像它通過登錄直接援引。當shell是交互式時,這相當於使用'exec -l bash'啓動登錄shell。當shell不交互時,登錄shell啓動文件將被執行。 'exec bash -l'或'exec bash --login'將用Bash登錄shell替換當前的shell。有關登錄shell的特殊行爲的描述,請參閱Bash Startup Files。

請參閱本文檔here

+0

是的,它的工作..,非常感謝你:) – sakthivel

+0

嗨迪帕克,你能解釋它是如何工作的? – sakthivel

1

的Cron僅傳遞最小的一套環境變量來作業。請參閱here

添加-lc選項來爲cron執行bash,以使用您的登錄環境並​​在crontab頂部設置環境路徑。

PATH=$PATH:/usr/bin:/bin:/usr/local/bin 
* * * * * /bin/bash -lc "cd ~/home/path/application && RAILS_ENV=development bundle exec rake namespacefolder:rake_file"