栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ES索引清理(按保存时间和索引前缀)以及shell eval使用说明

ES索引清理(按保存时间和索引前缀)以及shell eval使用说明

 clean_es_index.sh

#!/bin/bash
while read line;do
  key=`echo $line|awk -F = '{print $1}'`
  val=`echo $line|awk -F = '{print $2}'`
  eval "${key}=${val}"
done < ./env.cfg

echo "保存时间==${save_days}" >> ${clean_log}
del_time=$[$[$(date +%s%N)/1000000]-(86400000*$save_days)]
echo "删除截止时间==${del_time}" >> ${clean_log}
index_times=$(curl -s -u  ${es_username}:${es_passward}  "${es_server_ip}:${es_server_port}/_cat/indices?h=i,cd"|awk '{print $1,$2}')
echo "${index_times}" >> ${clean_log}
indexs=(${index_times// / })
echo "all index size==="${#indexs[@]}
for(( i=0;i<${#indexs[@]};i++));do
  if [ $(($i%2)) -eq 0 ];then
    indexname=${indexs[i]}
    indextime=${indexs[i+1]}
    if [ $indextime -lt $del_time ];then
      for delete_index in ${delete_indexs[@]};do
        if [[ $indexname =~ $delete_index ]];then
          del_result=`curl -s -u  ${es_username}:${es_passward}  -XDELETE "${es_server_ip}:${es_server_port}/"${indexname}"?pretty" |sed -n '2p'`
          echo "删除截止时间==${del_time} 数组下标==$i 索引创建时间==${indextime} 索引名称==${indexname} 删除结果==${del_result}" >> ${clean_log}
        fi
      done
    fi
  fi
done

env.cfg

clean_log=/root/log_es_clean.log
save_days=1
es_server_ip=192.168.44.20
es_server_port=9200
es_username=admin
es_passward=admin123
delete_indexs=(dw_span_model dw_trace_model dw_trace_min_summary_model dw_trace_hour_summary_model dw_trabizattr_model)

顾名思义,上面这两个脚本是做es索引清理的,在使用eval读取字典文件的时候报了下面这个异常

开始一直使用cat去看文件有什么不对劲,但是一直没有发现问题,最后在vi的时候才发现env.cfg最下面有个空行,导致了报错

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号