shell 和 cron 之间的 Curator 版本差异

Curator version discrepancy between shell and cron

我最近将 elasticsearch-curator 从 3.4.1 升级到了 4.1.0。我还创建了一个新的配置文件和操作文件,以执行我在 3.4.1 中执行的相同操作。会发生什么,当 cron 运行s 脚本时,它显示为 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