calendar前推n天_Shell获取ES3天的索引列表进行迁移操作
3天前所有的歷史索引操作方法
生產(chǎn)環(huán)境ES集群已切換為冷熱架構(gòu),日志保留最近3天的索引在ssd節(jié)點就可以了,超過3天的索引可以遷移到warm節(jié)點了,如何通過shell腳本去實現(xiàn)呢?
當(dāng)前我只有一個日志索引需要這樣操作,索引的時間戳是2020.11.17這樣的時間格式為結(jié)尾,先通過命令獲取索引的時間戳,并按照時間由近到遠(yuǎn)排序
curl -s http://es:9200/_cat/indices|awk '{print $3}'|grep ssys-log|sort -r接下來的思路是我要截取3天之后的時間戳,通過哪個命令可以實現(xiàn)呢?查閱了一些資料,發(fā)現(xiàn)tail比較適合,具體如下:
tail?-n?-3?data.txt???#獲取文件最后3行數(shù)據(jù)tail -n +3 data.txt #獲取文件3到最后一行數(shù)據(jù)顯然tail -n +3 data.txt 獲取文件3到最后一行數(shù)據(jù),符合我當(dāng)前的需求,修改下命令,添加獲取3天的日期列表:
curl -s http://es:9200/_cat/indices|awk '{print $3}'|grep ssys-log|sort -r|tail -n +5PS:tail -n +3 data.txt 是獲取第三行開始到最后的,我們需要保留3天的索引,所以這里應(yīng)該寫+4,從第4行開始,這樣就是保留了前3行的數(shù)據(jù)了,考慮容錯多保留1天,所以這里我改為+5了。
有了列表,就可以寫個簡單的for循環(huán)了
#!/bin/bashindex=`curl -s http://es:9200/_cat/indices|awk '{print $3}'|grep ssys-log|sort -r|tail -n +5`for i in $index;do echo $i; curl -XPUT http://es:9200/$i/_settings -d '{ "settings": { "index.routing.allocation.require.box_type": "warm" } }' ; sleep 10;done有些變量還是寫死的,獲取到的列表會重復(fù)操作put操作,此腳本還很粗糙,對于3天前的索引可以批量操作。
只針對特定4天前當(dāng)天的索引操作方法
后期針對每天的定時任務(wù),把4天前的索引遷移過去就可以了,也避免了上個腳本列表里的重復(fù)執(zhí)行。
通過date +%Y.%m.%d -d "-4 days"命令我們可以獲取4天前的日期格式,如下(今天是17號)
# curl http://es:9200/ssys-log-`date +%Y.%m.%d -d "-4 days"`?pretty{ "ssys-log-2020.11.13" : { "aliases" : { }, "mappings" : { }, "settings" : { "index" : { "routing" : { "allocation" : { "require" : { "box_type" : "warm" } } }, "number_of_shards" : "3", "provided_name" : "ssys-log-2020.11.13", "creation_date" : "1605527177922", "number_of_replicas" : "1", "uuid" : "LMeHqQy-SWK2D4zsvAwTrg", "version" : { "created" : "5050299" } } } }}現(xiàn)在我做個測試,關(guān)閉4天前的索引
curl -XPOST http://es:9200/ssys-log-`date +%Y.%m.%d -d "-4 days"`/_close?pretty# 查詢下索引的狀態(tài)curl -XGET http://es:9200/_cat/indices/ssys-log-`date +%Y.%m.%d -d "-4 days"`?h=statusclose測試結(jié)果是符合設(shè)想的,這樣設(shè)置一個定時任務(wù),每天執(zhí)行一次,就可以每次把4天前的索引關(guān)閉了。
總結(jié)
以上是生活随笔為你收集整理的calendar前推n天_Shell获取ES3天的索引列表进行迁移操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女子取药时发现医生用手机追剧引争议 医院
- 下一篇: 焊接标注lisp文件下载_压力容器中焊缝