2016-03-21 10 views
0

スクリプトを使用して古いLogstashインデックスを削除する方法をお探しの場合、インデックスを削除するためにSenseという拡張子を使用する瞬間のlogstashインデックスの名前はlogstash-2016.02.29, logstash-2016.03.01 ...です。私は毎日実行してElasticsearchから2週間以上経過しlogstashインデックスを削除するスクリプトを書きたいのスクリーンショットを参照するか、私はまた、インデックスを削除するcurl -XDELETE 'http://myIpAddress:9200/logstash-2016.02.29'bashスクリプトを使用してlogstashインデックスを削除する

enter image description here

をカール使用することができます。これは可能ですか?そうであれば、インデックスの名前から日付を使用してどのように行うことができますか?

G

+1

この答えは役立つかもしれません:http://stackoverflow.com/questions/33430055/removing- old-indices-in-elasticsearch/33430132#33430132(キュレーターツール) – Val

+0

こんにちは、ちょうどそれは仕事をするかもしれないように見えます。私は後でそれをテストし、スクリプトとあなたの提案へのリンクを投稿します。 – Gman

答えて

0

ちょうどfindコマンドを使用します。

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

これは、14日以上経過した名前が「logstash」で始まるすべてのファイルのために、下記のカレントディレクトリに検索して、削除します。

このような何かをしようと、ファイルの時間が全く信頼できない、とあなたはファイル名を使用する必要がある場合:

#!/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 
関連する問題