如何在后台运行太阳黑子重新索引为每四小时(how to run sunspot reindex in

2019-10-31 18:15发布

我想执行耙太阳黑子:REINDEX RAILS_ENV =为每四小时生产指挥。 要做到这一点我一直在使用shell编程写简单的bash脚本。 我会在终端成功运行,但如果我试图运行crontab它,然后它不工作。 它现在用的操作系统是CentOS的。

这里是我的bash脚本代码

#!/bin/bash
#export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH=/usr/local/rvm/gems/ruby-1.9.2-p290/bin:/usr/local/rvm/gems/ruby-1.9.2-p290@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p290/bin:/usr/local/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:
echo "started"
cd /var/www/html/spotchase2
pwd
source /usr/local/rvm/environments/ruby-1.9.2-p290
bundle install
if [ "$?" = 0 ]; then
    echo `date`
fi
source /usr/local/rvm/environments/ruby-1.9.2-p290
#/usr/local/rvm/gems/ruby-1.9.2-p290/bin/rake sunspot:reindex RAILS_ENV=production
rake sunspot:reindex RAILS_ENV=production
if [ "$?" = 0 ]; then
    echo "complete"
fi

请帮我解决这个问题。

编辑

我重定向输出一个文本文件。 在该文本文件正在逐渐才开始,捆绑安装和日期。 我没有得到完整的信息,因此我才知道,这是不工作,我没有得到关于该文本文件中的任何错误。

请帮我解决这个问题。

Answer 1:

通常情况下,我用的是每当宝石来处理这样的事情。 我没有写一个bash脚本,耙脚本是好的就够了。 Whenever将生成的crontab正确的语法。

在我的项目,我有几个脚本,需要在后台运行所有的时间。 这里是产生contab文件的命令。

whenever --update-crontab --set environment=production --load-file config/schedule_client.rb --user ubuntu

它会产生弄成这个样子。

0 2 * * * /bin/bash -l -c 'source /home/ubuntu/.rvm/scripts/rvm && cd /var/www/yoolk_statistics_api && RAILS_ENV=production bundle exec rake statistics:generate_clienst --silent >> log/client.log 2>&1'

为了确保我的crontab总是工作,我将输出重定向到日志文件,这样我可以看到它的运行与否。 在我的Ubuntu的服务器,我通常会检查syslog file进行调试。



文章来源: how to run sunspot reindex in background for every four hours