2016-03-21 12 views
0

Bir komut dosyası kullanarak eski Logstash dizinlerini kaldırmak için bir yöntem arıyorum, dizinleri kaldırmak için Sense adlı bir uzantıyı kullandığımda, logstash dizinlerim logstash-2016.02.29, logstash-2016.03.01 ... olarak adlandırılmıştır. , Ekran görüntüsü bakınız, yoksa da endeksler kaldırmak için bukle kullanabilirsinizBir meta komut dosyası kullanarak logstash Index/s kaldır

curl -XDELETE 'http://myIpAddress:9200/logstash-2016.02.29'

enter image description here Ben Elasticsearch itibaren 2 hafta daha eski logstash endeksi günlük çalıştırın ve ortadan kaldıracak bir senaryo yazmak istiyorum. Bu mümkün mü ve eğer öyleyse bu tarihi indeks adından kullanarak nasıl yapabilirim?

G

+1

: http://stackoverflow.com/questions/33430055/removing- eski-indeksi-in-elasticsearch/33430132 # 33430132 (Küratör aracı) – Val

+0

hey val, sadece iş yapabilir gibi görünüyor teşekkürler. Daha sonra test edip betiğimi ve önerinize bağlantıyı gönderirim. – Gman

cevap

0

Sadece bulmak komutu kullanın:

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

Bu, geçerli dizinde arar ve aşağıda, 14 günden eski olan adı "logstash" ile başlayan tüm dosyalar, ve sonra onları siler.

dosya süreleri tamamen güvenilmez ve dosya adlarını kullanmak için varsa, böyle bir şey deneyin:

#!/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 
Bu cevap yardımcı olabilecek
İlgili konular