2014-03-18 45 views
0

我完全停留在不想工作的cronjob命令上。Cronjob不能在耙指令上工作

這裏是我的問題:

我只是想在我的crontab啓動rake命令(用於管理平臺:檢查特定地址的所有未讀郵件,通過IMAP,並創建一個管理平臺車票)

這裏命令:

cd /opt/redmine/ && rake redmine:email:receive_imap RAILS_ENV="production" host=imap.gmail.com [email protected] ssl=true port=993 password=MyPassword project=level1support unknown_user=accept no_permission_check=1 allow_override=project 

我能夠推出這個對我的命令行,一切工作正常

所以我做了一個crontab -e並在我的crontab上添加以下行:

*/10 * * * * cd /opt/redmine/ && rake redmine:email:receive_imap RAILS_ENV="production" host=imap.gmail.com [email protected] ssl=true port=993 password=MyPassword project=level1support unknown_user=accept no_permission_check=1 allow_override=project 

但它不起作用。

這個cron似乎運行(這是我/var/log/cron文件確定)

我說這個的cron這樣的日誌文件(在該行的結尾)> /tmp/crontabRedmin.log 2&>1,但沒有寫在日誌文件中。

我創建了一個.sh腳本,我嘗試了不同的rake命令語法(/usr/local/bin/rake&& RAILS_ENV=production bundle exec rake),一切都在我的命令行上運行,但沒有任何事情通過cron。

請幫我知道,我在想什麼。

+0

你使用的東西來管理你的Ruby安裝或者你使用UNIX/linux包管理器爲你安裝ruby和rake嗎? – Gizmomogwai

+0

@Gizmomogwai我剛剛安裝了一個linux軟件包管理器 –

+0

在命令行和cron觸發的腳本中嘗試「哪個rake」和「哪個ruby」,看看你是否使用相同的版本!與捆綁相同。 – Gizmomogwai

回答

0

當使用cron作業執行rake任務時,未處理.bash_profile文件,因此您需要將環境變量添加到銷售腳本中。

echo $GEM_HOME 
echo $GEM_PATH 
echo $PATH 

以下內容添加到您的shell腳本:

使用下面找到了Ruby寶石路等

#!/bin/bash 
export PATH=$PATH:/home/user/.rvm/gems/ruby-2.0.0-p0/bin:/home/user/.rvm/gems/[email protected]/bin:/home/user/.rvm/bin 

export GEM_HOME=/home/user/.rvm/gems/ruby-2.0.0-p0 

export GEM_PATH=/home/user/.rvm/gems/ruby-2.0.0-p0:/home/user/.rvm/gems/[email protected] 
+0

Thx爲您提供幫助,但似乎並不奏效。 –

+0

echo $ GEM_HOME和echo $ GEM_PATH不返回任何內容。我嘗試了一種gem environnement,並在我的.sh腳本中添加了我的GEM PATHS和安裝目錄。但它似乎工作。 –