zoukankan      html  css  js  c++  java
  • 定时删除elasticsearch索引

    从去年搭建了日志系统后,就没有去管它了,最近发现大半年各种日志的index也蛮多的,就想着写个脚本定时清理一下,把一些太久的日志清理掉。

    脚本思路:通过获取index的尾部时间与我们设定的过期时间进行对比,如果是属于过期时间那么就进行删除,并写入日志。如果不是则不进行处理。

    完整的脚本:(今天准备写个,翻下笔记发现去年就已经写好了)

    #!/bin/bash
    ######################################################
    # $Name:        clean_amazon_index.sh
    # $Version:     v1.0
    # $Function:    clean amazon log index
    # $Author:      djx
    # $Create Date: 2017-10-18
    # $Description: shell
    ######################################################
    #本文未加文件锁,需要的可以加
    #脚本的日志文件路径
    CLEAN_LOG="/var/log/clean_amazon_index.log"
    #索引前缀
    INDEX_PRFIX="amazon-mysql-log"
    #elasticsearch 的主机ip及端口
    SERVER_PORT=192.168.1.123:9200
    #取出已有的索引信息
    INDEXS=$(curl -s "${SERVER_PORT}/_cat/indices?v" |grep "${INDEX_PRFIX}"|awk '{print $3}')
    #删除多少天以前的日志,假设输入10,意味着10天前的日志都将会被删除
    DELTIME=10
    # seconds since 1970-01-01 00:00:00 seconds
    SECONDS=$(date -d  "$(date  +%F) -${DELTIME} days" +%s)
    #判断日志文件是否存在,不存在需要创建。
    if [ ! -f  "${CLEAN_LOG}" ]
    then
    touch "${CLEAN_LOG}"
    fi
    #删除指定日期索引
    echo "----------------------------clean time is $(date +%Y-%m-%d_%H:%M:%S) ------------------------------" >>${CLEAN_LOG}
    for del_index in ${INDEXS}
    do
            indexDate=$( echo ${del_index} |cut -d "-" -f 4,5,6 )
    	#根据索引的名称的长度进行切割,不同长度的索引在这里需要进行对应的修改
            indexSecond=$( date -d ${indexDate} +%s )
            if [ $(( $SECONDS- $indexSecond )) -gt 0 ]
                    then
                            echo "${del_index}" >>${CLEAN_LOG}
    			#取出删除索引的返回结果
                            delResult=`curl -s  -XDELETE "${SERVER_PORT}/"${del_index}"?pretty" |sed -n '2p'`
    			#写入日志
                            echo "clean time is $(date)" >>${CLEAN_LOG}
                            echo "delResult is ${delResult}" >>${CLEAN_LOG}
    
            fi
    done
    

     然后将脚本添加到定时任务定期执行即可(crontab)。

  • 相关阅读:
    jquery操作checkbox方法(全选、全不选、至少选择一个、选择值/文本)
    如何设置tomcat服务器编码为utf-8编码
    eclipse创建文件package,source folder和folder区别及相互转换
    git常用命令
    Java程序员最常犯的错误盘点之Top 10
    最有用的java面试题
    Java面试进阶部分集合
    Java面试基础部分合集
    python作为计算器(数学用法)
    phthon入门介绍
  • 原文地址:https://www.cnblogs.com/operationhome/p/9004361.html
Copyright © 2011-2022 走看看