ELK-定期清除数据

#!/bin/bash

# @Author: richard

# @Date:   2017-08-11 17:27:49

# @Last Modified by:   richard

# @Last Modified time: 2017-08-11 18:04:58

  

#保留近 N 天

KEEP_DAYS=7

  

# 删除前 N的所有天到 前N+10天==>每天执行

function get_todelete_days()

{

    # declare -A DAY_ARR

    # DAY_ARR=""

    for in $(seq 1 10);

    do

        THIS_DAY=$(date -"$(($KEEP_DAYS+$i)) day ago" +%Y.%m.%d)

        DAY_ARR="${DAY_ARR[@]}" $THIS_DAY)

    done

  

    echo ${DAY_ARR[*]}

  

}

  

# 返回数组的写法

TO_DELETE_DAYS=(`get_todelete_days`)

  

for day in "${TO_DELETE_DAYS[@]}"

do

    echo "$day will be delete"  

    curl -XDELETE 'http://127.0.0.1:9200/*-'${day}

done

  

写到 crontab 里面去

1

2

crontab -l

1 1 * * * /home/admin/elasticsearch/es_clear.sh

  

 看看效果 只保留最近 7 天

---------------  更新 ---------------------

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

#!/bin/bash

# @Author: richard

# @Date:   2017-08-11 17:27:49

# @Last Modified by:   richard

# @Last Modified time: 2017-08-11 18:04:58

# 用于es中日志索引的定时删除

# 保留近 N 天

KEEP_DAYS=7

# 删除最近 M 天,即删除是从 M+N到N

DEL_DAYS=10

# 删除索引名,留空则使用*-日期(*-2021.02.20)

INDEX_NAME=()

# todo 需保留的索引名,留空则使用

# 删除前 N的所有天到 前N天==>每天执行

function get_todelete_days()

{

    # declare -A DAY_ARR

    # DAY_ARR=""

    for in $(seq $DEL_DAYS $(($KEEP_DAYS+$DEL_DAYS)));

    do

        THIS_DAY=$(date -d "$i day ago" +%Y.%m.%d)

        DAY_ARR=( "${DAY_ARR[@]}" $THIS_DAY)

    done

    echo ${DAY_ARR[*]}

}

# 返回数组的写法

TO_DELETE_DAYS=(`get_todelete_days`)

for day in "${TO_DELETE_DAYS[@]}"

do

    if [ ${#INDEX_NAME[@]} -eq 0 ]; then

      L_INDEX_NAME=( "${L_INDEX_NAME[@]}" "*-"${day} )

    else

      for each in "${INDEX_NAME[@]}"

      do

        L_INDEX_NAME=( "${L_INDEX_NAME[@]}" "${each}-${day}" )

      done

    fi

done

for l_index in "${L_INDEX_NAME[@]}"

do

      echo -n "$l_index will be delete"

      curl -XDELETE -u"elastic:elastic#" 'http://127.0.0.1:9200/'$l_index

      echo ""

done

  

  

# sh clean.sh
nginx_access-2021.02.21 will be delete{"acknowledged":true}
nginx_error-2021.02.21 will be delete{"acknowledged":true}
nginx_access-2021.02.20 will be delete{"acknowledged":true}
nginx_error-2021.02.20 will be delete{"acknowledged":true}
nginx_access-2021.02.19 will be delete{"acknowledged":true}
nginx_error-2021.02.19 will be delete{"acknowledged":true}
nginx_access-2021.02.18 will be delete{"acknowledged":true}
nginx_error-2021.02.18 will be delete{"acknowledged":true}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值