歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 通過crontab調用rvm下的rake命令

通過crontab調用rvm下的rake命令

日期:2017/2/28 15:43:49   编辑:Linux教程

需要通過crontab調用rvm下的rake命令,折騰了很久才搞定。

環境是Ubuntu 10.04

crontab的問題有90%是和path相關的,找不到正確的ruby, 找不到正確的gems。理解了這一點就變得容易了。只要正確設置:PATH, GEM_HOME, GEM_PATH就和命令行下運營一樣了。

1. 確保你在正常的命令行下能夠運行你想要調用的腳本或者程序。
2. 在上一步成功的基礎上,查看PATH, GEM_HOME和GEM_PATH

  1. $ echo $PATH
  2. $ echo $GEM_HOME
  3. $ echo $GEM_PATH

3. 把上面的變量設置到一個腳本中,比如set_cron_path.sh,下面是我們列子:

  1. export PATH=/home/someboy/.rvm/gems/ruby-1.9.3-p125@zyt/bin:/home/someboy/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/someboy/.rvm/rubies/ruby-1.9.3-p125/bin:/home/someboy/.rvm/bin:/usr/local/ruby/bin:/usr/local/ImageMagick/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
  2. export GEM_HOME=/home/someboy/.rvm/gems/ruby-1.9.3-p125@zyt
  3. export GEM_PATH=/home/someboy/.rvm/gems/ruby-1.9.3-p125@zyt:/home/someboy/.rvm/gems/ruby-1.9.3-p125@global

4. 在crontab裡面調用這個腳本,比如:

03 * * * * . /home/someboy/set_cron193_path.sh; /bin/bash -l -c 'cd /home/someboy/apps/zyt && RAILS_ENV=production rake platform_comment:get_comments --trace >>/home/someboy/apps/zyt/log/platform_comment.log 2>&1'

這樣應該就可以了。還有其他可能常見的問題,比如某些文件沒有權限等。
上面的例子會把日子輸入到相應的log中,可以查看運營的情況。
crontab自己的log寫在/var/log/syslog中
Copyright © Linux教程網 All Rights Reserved