【问题标题】:Remove logstash Index/s using a bash script使用 bash 脚本删除 logstash Index/s
【发布时间】:2016-07-07 20:48:51
【问题描述】:

我正在寻找一种使用脚本删除旧 Logstash 索引的方法,我的 Logstash 索引被命名为 logstash-2016.02.29, logstash-2016.03.01 ...,此时我使用 chrome 中的扩展名为 Sense 来删除索引。查看屏幕截图,或者我也可以使用 curl 删除索引,curl -XDELETE 'http://myIpAddress:9200/logstash-2016.02.29'

我想编写一个每天运行的脚本,并从 Elasticsearch 中删除超过 2 周的 logstash 索引。这可能吗?如果可以,我该如何使用索引名称中的日期来做到这一点?

G

【问题讨论】:

  • 这个答案可能会有所帮助:stackoverflow.com/questions/33430055/…(策展人工具)
  • 嘿 val,谢谢,看起来它可能会完成这项工作。我稍后会对其进行测试并发布我的脚本以及指向您建议的链接。

标签: linux bash elasticsearch logstash


【解决方案1】:

只需使用 find 命令:

find . logstash* -mtime +14 -type f -delete

这将在当前目录及以下目录中搜索名称以“logstash”开头的所有超过 14 天的文件,然后将其删除。

如果文件时间完全不可靠,并且您必须使用文件名,请尝试以下操作:

#!/bin/bash
testdate=$(date -d '14 days ago' '+%Y%m%d')
for f in ./logstash-[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]; do
    dt=$(basename "${f//.}")
    dt=${dt#logstash-}
    [ $dt -le $testdate ] && rm -f "$f"
done

【讨论】:

    猜你喜欢
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多