2014-07-26 95 views
0

我想讓whenever運行我的耙子任務,但它不起作用。無法獲得每當我運行我的耙子任務

#Command Line 
$ whenever -w 
[write] crontab file written 


#schedule.rb 
every :year, :at => "2014-07-25 17:39:48 -0700" do 
    rake 'timeperiod:create_timeperiod' 
end 

耙命令保存在一個數據庫中的模型和puts文字,所以我會知道它的工作(當我運行rake它一樣)。我在做什麼時會出現語法錯誤?

請注意,schedule.rb中的時間和日期是任意的,我會在測試之前將其更改爲兩分鐘。

回答

-1

有此一對夫婦的問題。

  1. 到cron作業添加到,只要是用命令whenever --update-crontab <name of identifier>
  2. 格式是不正確的,最好的辦法。通過直接在cron中指定時間,我能夠使其工作。

例如:

#schedule.rb 
every '13 15 26 7 *' do 
    rake 'timeperiod:create_timeperiod' 
end 
0

爲什麼你不驗證你的命令被添加到crontab?

$ crontab -l 

您也可以手動添加作業。

$ whenever 
* * * * * * bash -l 'cd /path/to/dir; rake your:task' 

$ crontab -e 
# add the cron job 

此外,cron作業的輸出不會輸出到屏幕;它會發送到您的郵件。檢查你的郵箱。

從手冊頁:

當執行命令時,任何輸出被郵寄給 crontab中的所有者(或在 在crontab在MAILTO環境變量中指定的用戶,如果這樣的存在) 。這些進程的cron運行 的子副本的名稱被強制爲大寫,在syslog和ps輸出中將會看到 。

0

對我來說,我使用的是命令,但我認爲這不是最好的情況。說我的回購在$ HOME/www/virtualspirit,在我的資源庫中。所以,我只要命令將CD/WWW/virtualspirit & & /$HOME/.rvm/rubies/ruby-2.1.2/bin/rake TIMEPERIOD:create_timeperiod RAILS_ENV =生產

仔細檢查它的crontab -e看看是否保存。

+0

我的crontab後'輸出-e'在這個pastie:http://pastie.org/9423365我只想說,該命令將被保存。 –

+0

@EricBaldwin是這種開發或生產?你的pastie使用開發來展示它,並且生成的命令我認爲它是正確的,從你給我看的命令,你可以試着在你的$ HOME路徑中用cd〜&RAILS_ENV =開發bundle exec rake timeperiod執行它:create_timeperiod - -silent – Nich

+0

我認爲它不會執行你的任務...試試吧,看看 – Nich

1

您的任務可能會失敗,因爲cron使用的shell與您的普通用戶使用的shell不同。

檢查日誌中的crontab:

grep CRON /var/log/syslog 
+0

你說得對,當我運行這個時,我得到了「沒有這樣的目錄」。你知道我怎麼可以在這裏同步shell嗎? –