我最近将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())

最佳答案

设法使其正常工作-我最终从节点上清除了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

10-08 01:24