通过crontab调用rvm下的rake命令
需要通过crontab调用rvm下的rake命令,折腾了很久才搞定。
环境是Ubuntu 10.04
crontab的问题有90%是和path相关的,找不到正确的ruby, 找不到正确的gems。理解了这一点就变得容易了。只要正确设置:PATH, GEM_HOME, GEM_PATH就和命令行下运营一样了。
1. 确保你在正常的命令行下能够运行你想要调用的脚本或者程序。
2. 在上一步成功的基础上,查看PATH, GEM_HOME和GEM_PATH
- $ echo $PATH
- $ echo $GEM_HOME
- $ echo $GEM_PATH
3. 把上面的变量设置到一个脚本中,比如set_cron_path.sh,下面是我们列子:
- 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
- export GEM_HOME=/home/someboy/.rvm/gems/ruby-1.9.3-p125@zyt
- 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中
相关推荐
liguojia 2020-10-20
木子李CSDN 2020-06-05
kernelstudy 2020-05-21
playlinuxxx 2020-05-08
IsanaYashiro 2020-04-22
fenxinzi 2020-04-07
山兔与孟婆 2020-03-28
stoneechogx 2020-02-17
onlykg 2020-02-15
大老张学编程 2020-02-09
linuxisperfect 2020-01-09
liuyh 2019-12-22
蜀川居 2013-08-05
happywxp 2013-03-27
chenzelin 2013-03-31
NeverAgain 2019-12-13
mieleizhi0 2019-12-05
ningningmingming 2019-11-13
playlinuxxx 2013-09-02