2011-02-16 49 views
1
0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /bin/bash -l -c 'cd /var/www/rails/xxx/releases/20110105175853 && RAILS_ENV=production rake ts:rebuild --silent' 

嗨,夥計們。這是每次生成的crontab任務。它正在重建獅身人面像索引。 它作爲crontab任務運行時不起作用,在/ var/log/cron日誌中沒有錯誤。但它在我手動運行該命令時起作用。rake ts:rebuild不能用作crontab任務

有人可以幫忙嗎?非常感謝你。

+0

讓所有的字符串轉義正確使cron快樂是一種痛苦。我建議把你的bash runline製作成一個小bash腳本。然後你可以在你的crontab文件中放入一條簡單的runline。 – 2011-02-16 16:57:40

回答

2

你的cron任務看起來有點奇怪。不確定你是否想要一直調用ts:rebuild,只需要在重新啓動服務器時重新編譯,以更新剛剛運行的索引ts:index,下面是我用於rails應用程序的cron任務,它每5分鐘刷新獅身人面像索引。

如果您使用的用戶crontab這應該工作:

*/5 * * * * cd /home/appuser/rails-app; RAILS_ENV=production rake ts:index >> /dev/null 

如果你把你的crons在/etc/cron.d/你將需要添加的用戶名,如:

*/5 * * * * appuser cd /home/appuser/rails-app; RAILS_ENV=production rake ts:index >> /dev/null 

這些設置適用於Ubuntu機器,但應該適用於大多數Linux發行版。

希望這會有所幫助。