0

我最近将 elasticsearch-curator 从 3.4.1 升级到 4.1.0。我还创建了一个新的配置文件和执行与 3.4.1 相同的操作所需的操作文件。发生的情况是,当 cron 运行脚本时,它显示为 3.4.1。如果我 sudo 手动运行脚本,它会显示为 4.1.0

我已经删除了 apt 包并迁移到了 pip 包。这是我能想到的唯一可能导致这种情况的事情。

这是脚本,它将从 cron.daily 运行(暂时移至 cron.hourly 进行测试,已不负责任地设置为每分钟运行一次):

#!/bin/sh
/usr/local/bin/curator --version
/usr/local/bin/curator --config /etc/curator/curator.yml /etc/curator/actions/01-nightly-close
/usr/local/bin/curator --config /etc/curator/curator.yml /etc/curator/actions/02-nightly-optimize

我可以将脚本作为 sudo 运行,并且版本号显示为 4.1.0:

/etc/cron.hourly/curator
curator, version 4.1.0

如果我让 cron 运行作业,它会显示版本 3.4.1:

/etc/cron.hourly/curator
curator, version 3.4.1
Error: no such option: --config
Error: no such option: --config
run-parts: /etc/cron.hourly/curator exited with return code 2

另外,当我运行时which curator,它指向/usr/local/bin/curator

编辑:要回答 untergeek 的问题,以下是/usr/local/bin/curator

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from curator.curator import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())
4

1 回答 1

1

设法让它工作——我最终从我的节点中清除了所有 curator 实例,包括 pip 和 apt 版本,然后根据https://www.elastic.co/guide/en/elasticsearch/client/curator运行以下命令/current/installation.html

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elastic.co/curator/4/debian stable main" >> /etc/apt/sources.list.d/curator.list
sudo apt-get update && sudo apt-get install python-setuptools python-elasticsearch-curator
于 2016-09-26T16:14:35.607 回答