Browse Source

up elk清理脚本

Moeyuuko 1 year ago
commit
100b90ab88
1 changed files with 110 additions and 0 deletions
  1. 110 0
      ELK/ELK index清理脚本.sh

+ 110 - 0
ELK/ELK index清理脚本.sh

@@ -0,0 +1,110 @@
+#!/bin/sh
+SCRIPTNAME=$0
+
+
+#基础信息
+host=""
+port="9200"
+http_auth=":"   #user:pass
+
+#index名称格式 匹配天 abc-def-2020-12-31
+days_timestring="%Y-%m-%d"
+days_Regular="-20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]$"
+
+#index名称格式 匹配周 abc-def-2020-52
+weeks_timestring="%Y-%W"
+weeks_Regular="-20[0-9][0-9]-[0-9][0-9]$"
+
+#index列表  一行一个index name  前面加^ 匹配头部名称    可自定义变量名 可增加   执行时传入即可
+week_1_index="
+^xxx-xxx
+^xxx-xxx
+^xxx-xxx
+"
+
+day_3_index="
+^xxx-xxx
+^xxx-xxx
+^xxx-xxx
+"
+
+day_2_index="
+^xxx-xxx
+^xxx-xxx
+^xxx-xxx
+"
+
+#在delete_other中排除
+exclude="
+$week_1_index
+$day_3_index
+$day_2_index
+"
+
+case "$2" in  #检查传入的是否为 --dry-run 只运行不操作
+	--dry-run)
+		dryrun="--dry-run"
+		echo "dry-run mode"
+	;;
+esac
+
+dryrun="--dry-run"                                 ###@@@ 模板保险用 强制不操作 正式使用时 删除这2行 @@@###
+echo "模板状态 不操作 检查第50行"
+
+delete_week(){
+	indexs=$1
+	week=$2
+	curator_cli $dryrun --host $host --port $port --http_auth $http_auth delete_indices --filter_list '[{"filtertype":"age","source":"name","direction":"older","timestring":"'$weeks_timestring'","unit":"weeks","unit_count":"'$week'"},{"filtertype":"pattern","kind":"regex","value":"'$indexs'"}]'
+}
+
+delete_day(){
+	indexs=$1
+	day=$2
+	curator_cli $dryrun --host $host --port $port --http_auth $http_auth delete_indices --filter_list '[{"filtertype":"age","source":"name","direction":"older","timestring":"'$days_timestring'","unit":"days","unit_count":"'$day'"},{"filtertype":"pattern","kind":"regex","value":"'$indexs'"}]'
+}
+
+delete_other(){
+	# 处理参数
+	while getopts 'i:d:w:' OPT; do
+		case $OPT in
+			i) exclude_indexs=$OPTARG ;;
+			d) day=$OPTARG ;;
+			w) week=$OPTARG ;;
+			?)
+				echo "Usage: `basename $0` -i [exclude_indexs] -d [day] -w [week]"
+				exit
+			;;
+		esac
+	done
+	# 减去已经使用的参数
+	shift $(($OPTIND - 1))
+
+	#非空执行
+	if [ $day ];then
+		#day
+		curator_cli $dryrun --host $host --port $port --http_auth $http_auth delete_indices --filter_list '[{"filtertype":"age","source":"name","direction":"older","timestring":"'$days_timestring'","unit":"days","unit_count":"'$day'"},{"filtertype":"pattern","kind":"regex","value":"'$exclude_indexs'","exclude":"True"},{"filtertype":"pattern","kind":"regex","value":"'$days_Regular'"}]'
+	fi
+	if [ $week ];then
+		#week
+		curator_cli $dryrun --host $host --port $port --http_auth $http_auth delete_indices --filter_list '[{"filtertype":"age","source":"name","direction":"older","timestring":"'$weeks_timestring'","unit":"days","unit_count":"'$week'"},{"filtertype":"pattern","kind":"regex","value":"'$exclude_indexs'","exclude":"True"},{"filtertype":"pattern","kind":"regex","value":"'$weeks_Regular'"}]'
+	fi
+
+}
+
+case "$1" in
+	delete_day) #天
+		delete_day $(echo $day_3_index|sed 's/ /|/g') 3   #day   #整合条件后传入 #天数
+		delete_day $(echo $day_2_index|sed 's/ /|/g') 2   #day
+	;;
+	delete_week) #周
+		delete_week $(echo $week_1_index|sed 's/ /|/g') 1   #week   #整合条件后传入 #周数
+	;;
+	delete_other) #其他
+		delete_other -i $(echo $exclude|sed 's/ /|/g') -d 10 -w 2   #-i [排除项] -d [天数] -w [周数] 
+	;;
+	*)
+		echo "Usage: $SCRIPTNAME {delete_day|delete_week|delete_other} {--dry-run}"
+		echo "    --dry-run    Do not perform any changes."
+		exit 1
+	;;
+esac