0

我有一个 cron 作业,它每 2 分钟在 Ubuntu linux 服务器 LTS 12.0.04 上运行一个 shell 脚本来构建弹性搜索索引,下面是 shell 脚本:

#! /bin/sh
echo "--------------------------------------------------------------" >> /var/log/syslog ;
echo "                  CRON Task: DOCOVA Elastic Indexer DV      " >> /var/log/syslog ;
echo "--------------------------------------------------------------" >> /var/log/syslog ;
echo "populate index ..." >> /var/log/syslog ;
echo "start time: $(date)" >> /var/log/syslog;
/usr/bin/php /var/www/Symfony/app/console fos:elastica:populate  --no-reset -v >> /var/log/syslog;
#php app/console fos:elastica:populate >> /var/log/syslog;
echo "index task completed." >> /var/log/syslog ;
echo "end time: $(date) " >> /var/log/syslog;
echo "-------------------------------------------------------------" >> /var/log/syslog ;

当此脚本通过 cron 作业运行时,它似乎给出了如下所示的输出,其中“填充网站/文档,100.0% (30/30),144 个对象/秒”的数量更多

Feb 28 11:58:01 ubuntu-teitr CRON[5138]: (root) CMD (/var/www/Symfony/buildDocovaIndex.sh)
--------------------------------------------------------------
                        CRON Task: DOCOVA Elastic Indexer DV
--------------------------------------------------------------
populate index ...
start time: Fri Feb 28 11:58:01 EST 2014
command: php /var/www/Symfony/app/console fos:elastica:populate --env=prod
Populating website/documents, 100.0% (30/30), **144 objects/s**
Refreshing website
index task completed.
end time: Fri Feb 28 11:58:01 EST 2014
-------------------------------------------------------------

当我手动运行脚本时,它的对象计数较少,如下所示:

  populate index ...
    start time: Fri Feb 28 12:09:08 EST 2014
    command: php /var/www/Symfony/app/console fos:elastica:populate --env=prod
    Populating website/documents, 100.0% (30/30), **12 objects/s**
    Refreshing website
    index task completed.
    end time: Fri Feb 28 12:09:10 EST 2014

有人可以建议为什么会发生这种不一致的行为,是否需要在 shell 脚本中添加一些东西,请指教,thnx。

4

1 回答 1

0

我可以通过在 cron 计划中使用 cd first "cd /var/www/Symfony" 更改路径来解决这个问题,如下所示:

 */2 * * * *  cd /var/www/Symfony && /var/www/Symfony/buildDocovaIndex.sh
于 2014-03-24T13:57:12.513 回答