我正在寻找一种使用脚本删除旧Logstash索引的方法,我的logstash索引名为logstash-2016.02.29, logstash-2016.03.01 ...
,此时我使用名为Sense的chrome中的扩展来删除索引。看屏幕截图,或者我也可以使用curl删除索引curl -XDELETE 'http://myIpAddress:9200/logstash-2016.02.29'
我想编写一个每天运行的脚本,并从Elasticsearch中删除超过2周的logstash索引。这是可能的吗?如果可以的话,我该如何使用索引名称中的日期呢?
答案 0 :(得分:0)
只需使用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