|
@@ -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
|