我完全陷入了不想工作的 cronjob 命令。
这是我的问题:
我只想在我的 crontab 上启动 rake 命令(对于 Redmine:通过 IMAP 检查特定地址上的所有未读电子邮件并创建 redmine 票证)
这是命令:
cd /opt/redmine/ && rake redmine:email:receive_imap RAILS_ENV="production" host=imap.gmail.com username=redmine.check@gmail.com 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 username=redmine.check@gmail.com 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=生产包 exec rake
),一切都在我的命令行上运行,但没有通过 cron 运行。
请帮助我知道我缺少什么。
当使用 cron 作业执行 rake 任务时,.bash_profile 文件不会被处理,因此您需要将环境变量添加到销售脚本中。
使用以下命令查找 Ruby Gems 路径等:
echo $GEM_HOME
echo $GEM_PATH
echo $PATH
将以下内容添加到您的 shell 脚本中:
#!/bin/bash
export PATH=$PATH:/home/user/.rvm/gems/ruby-2.0.0-p0/bin:/home/user/.rvm/gems/ruby-2.0.0-p0@global/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/ruby-2.0.0-p0@global
我是一名优秀的程序员,十分优秀!