信创环境ES索引管理脚本:close, delete
背景
elastic-curator在信创环境无现成安装包,且现成一般无法联网,此时通过脚本管理es索引是最佳选择。
1, 脚本内容: es-close-del.sh
[root@myprojtest001 ]# cat es-close-del.sh
#/bin/bash#elastic地址
ELASTIC_URL=127.0.0.1:9200
#默认的删除时间
DELETE_MONTH=6
#默认的关闭时间
CLOSE_MONTH=1
#默认index
#INDEX_NAME=s_awqed_
INDEX_NAME=
ES_USER_PWD=elastic:123456#索引列表:例如 cs_myproj_2024 , qqq_myproj_2024_01, test_myproj_2024_01_03
# echo t1.2023.03_03 |egrep -o '[0-9]{4}([_.-][0-9]+([_.-][0-9]+)?)?'|xargs |tr '[:punct:]' '-'
##输出结果:2023-03-03
INDEX_MSG=`curl -s -u "$ES_USER_PWD" -XGET ${ELASTIC_URL}/_cat/indices | grep _myproj_ `
if [[ -z $INDEX_NAME ]] ; thenINDEX_OPEN=`echo "$INDEX_MSG" |grep open | awk '{print $3}' | sort`
elseINDEX_OPEN=`echo "$INDEX_MSG" |grep $INDEX_NAME | grep open | awk '{print $3}' | sort`
fi#关闭索引的截止日期
CLOSE_DATE=`date -d "${CLOSE_MONTH} months ago" +%Y-%m-%d`
t_end_close=`date -d "${CLOSE_DATE}" +%s`#删除索引的截止日期
DELETE_DATE=`date -d "${DELETE_MONTH} months ago" +%Y-%m-%d`
t_end_del=`date -d "${DELETE_DATE}" +%s`#当前日期
t_end=`date +%s`
#遍历open的索引,判断是否应该关闭
for index in $INDEX_OPEN
do#获取索引日期#echo "-------$index--------"#INDEX_DATE=$(echo $index|sed -E 's@([a-zA-Z0-9_-]+)_myproj_@@g' |sed 's@_@-@g')INDEX_DATE=$(echo $index|egrep -o '[0-9]{4}([_.-][0-9]+([_.-][0-9]+)?)?'|tr '[:punct:]' '-')len1=${#INDEX_DATE} #es按年存,设置为该年份的最后一个月截止 xx_2024 --> xx_2024_12_31if [ $len1 -lt 5 ]; thenINDEX_DATE=$INDEX_DATE"-12-31"#es按月存,设置为该月份的最后一天截止 xx_2024_01 --> xx_2024_01_28elif [ $len1 -lt 10 ]; then INDEX_DATE=$INDEX_DATE"-28"fit_start=`date -d "${INDEX_DATE}" +%s`x=$((t_end - t_start))##比截止日期早的数据#时间差几个月(不足1月就为0: 例如 24/30=0): 保证有1个月数据x2=$((x / 3600 /24 /30 -1 ))if [ ${t_start} -lt ${t_end_close} ] && [ $x2 -ge $CLOSE_MONTH ]; thenecho -e "\n close ${index} index"curl -u "$ES_USER_PWD" -XPOST ${ELASTIC_URL}/$index/_closefi
done#删除
#遍历open的索引,判断是否应该删除
INDEX_ALL=`echo "$INDEX_MSG" |grep close | awk '{print $3}' | sort`
for index in $INDEX_ALL
do#获取索引日期#echo "-----$index--------"#INDEX_DATE=$(echo $index|sed -E 's@([a-zA-Z]_?)@@g'|sed 's@_@-@g')#INDEX_DATE=$(echo $index|sed -E 's@([a-zA-Z0-9_-]+)_myproj_@@g' |sed 's@_@-@g')INDEX_DATE=$(echo $index|egrep -o '[0-9]{4}([_.-][0-9]+([_.-][0-9]+)?)?'|tr '[:punct:]' '-')len1=${#INDEX_DATE} #es按年存,设置为该年份的最后一个月if [ $len1 -lt 5 ]; thenINDEX_DATE=$INDEX_DATE"-12-31"#es按月存,设置为该月份的最后一天elif [ $len1 -lt 10 ]; then INDEX_DATE=$INDEX_DATE"-28"fit_start=`date -d "${INDEX_DATE}" +%s`x=$((t_end - t_start))##比截止日期早的数据#时间差几个月(不足1月就为0: 例如 24/30=0): 保证有1个月数据x2=$((x / 3600 /24 /30 -1))if [ ${t_start} -lt ${t_end_del} ] && [ $x2 -ge $DELETE_MONTH ]; thenecho -e "\n delete ${index} index"curl -u "$ES_USER_PWD" -XDELETE ${ELASTIC_URL}/$indexfi
done
1, 脚本执行验证
[root@myprojtest001 ]# cat es-close-del.sh
close monitor_myproj_2023_09_07 index
{"acknowledged":true,"shards_acknowledged":true,"indices":{"monitor_myproj_2023_09_07":{"closed":true}}}delete monitor_myproj_2023_09_07 index
{"acknowledged":true}
相关文章:
信创环境ES索引管理脚本:close, delete
背景 elastic-curator在信创环境无现成安装包,且现成一般无法联网,此时通过脚本管理es索引是最佳选择。 1, 脚本内容: es-close-del.sh [rootmyprojtest001 ]# cat es-close-del.sh #/bin/bash#elastic地址 ELASTIC_URL127.0.0.1:9200 #默认的删除时间…...
torch-v1.3.1-build
编译pytorch-v1.3.1 python版本>3.8会收到报错 error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization, 参见: https://github.com/pytorch/pytorch/issues/28060 简单办法是用python3.7 wget https://mirrors.tuna.tsingh…...
C语言宏定义笔记
把宏名全部大写,函数名不要全部大写。注意宏定义表示数据类型和用 typedef 定义数据说明符的区别。宏定义只是简单的字符串替换,由预处理器来处理; typedef 是在编译阶段由编译器处理的,它并不是简单的字符串替换,而给…...
设计模式:生活中的观察者模式
想象你在社交媒体上关注(订阅)了一个名人或新闻频道(主题)。一旦他们发布新内容,所有关注者(观察者)都会收到通知。这个过程就很像观察者模式的工作原理。 生活场景类比 主题(Subj…...

Qt实现Kermit协议(四)
3 实现 3.3 KermitRecvFile 该模块实现了Kermit接收文件功能。 序列图如下: 3.3.1 KermitRecvFile定义 class QSerialPort; class KermitRecvFile : public QObject, public Kermit {Q_OBJECT public:explicit KermitRecvFile(QSerialPort *serial, QObject *…...

苏州金龙助力旅游客运加速蜕变
近日,北京铭悦旅游客运有限公司又迎来一批苏州金龙海格纯电动客车。(以下简称北京铭悦旅游)总经理郭保生在车辆交付时说到,“为迎接强劲复苏的旅游市场,要求旅游客运向绿色客运转型,以及人民对品质生活、美…...

头盔检测 | 基于Caffe-SSD目标检测算法实现的建筑工地头盔检测
项目应用场景 面向建筑工地头盔检测场景,使用深度学习 Caffe SSD 目标检测算法,基于 C 实现。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装 Caffe SSD(2) 执行训练 sh examples/Hardhat/SSD300/train_SSD300.sh (3) 部署算法 项目获取 h…...

Stable diffusion 加载扩展列表报错解决方法
项目场景: 在使用Stable diffusion webui时,使用扩展列表出现错误 问题描述 点击loadfrom后,出现加载扩展列表报错 原因分析: 下载的扩展的时候,都是github 的url,需要科学上网,如果不能科学…...
Git(8)之分支间同步特定提交
Git(8)之分支间同步特定提交 Author:Once Day Date:2024年4月7日 漫漫长路有人对你微笑过嘛… 全系列文章可查看专栏: Git使用记录_Once_day的博客-CSDN博客 文章目录 Git(8)之分支间同步特定提交1. 分支间同步提交2. cherry-pick同步分支间的特定提交…...
万得AI算法工程师一面面试题6道|含解析
节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 今天…...
蓝桥杯23年第十四届省赛-异或和之和|拆位、贡献法
题目链接: 蓝桥杯2023年第十四届省赛真题-异或和之和 - C语言网 (dotcpp.com) 1.异或和之和 - 蓝桥云课 (lanqiao.cn) 参考题解: 蓝桥杯真题讲解:异或和之和 (拆位、贡献法)-CSDN博客 洛谷P9236 [蓝桥杯 2023 省 A]…...
Unity进阶之路(1)回顾与思考
首先呢,博主在这里先反思一下自己这几个月,其实并没有多少进步。 在寒假中,博主几乎是独立编写了一个小程序的完整UI和一个Uniapp的雏形。那段时间是博主生产力最高的时间段。几乎是每天8点起来开始编写代码,晚上一直忙到很晚。 …...

【C语言】——指针八:指针运算笔试题解析
【C语言】——指针八:指针运算笔试题解析 一、题一二、题二三、题三四、题四五、题五六、题六七、题七 一、题一 //程序输出结果是什么 int main() {int a[5] { 1,2,3,4,5 };int* ptr (int*)(&a 1);printf("%d, %d", *(a 1), *(ptr - 1));return…...

JVM字节码与类的加载——class文件结构
文章目录 1、概述1.1、class文件的跨平台性1.2、编译器分类1.3、透过字节码指令看代码细节 2、虚拟机的基石:class文件2.1、字节码指令2.2、解读字节码方式 3、class文件结构3.1、魔数:class文件的标识3.2、class文件版本号3.3、常量池:存放所…...

小程序如何通过公众号发送新订单提醒
当客户在小程序上下单后,公众号会发送订单通知,这可以让管理员及时获知用户下单情况,方便及时处理订单和提供服务。下面是具体介绍如何设置公众号来发送订单服务通知。 方式一:通过采云公众号发送订单通知 此种方式是默认的通知…...

聊聊公众号最让我不爽的两个痛点
本文首发于 Python猫 微信公众号最让我不爽的地方有两个,而且有很多人虽然也不爽,却不知道原因。 本文想聊聊公众号的两个痛点,因为我经常收到私信问这两个问题,本文算是一次集中的回复吧。 第一个不爽的点是公众号会屏蔽外链&…...

【leetCode】2810. 故障键盘
文章目录 [2810. 故障键盘](https://leetcode.cn/problems/faulty-keyboard/)思路一:模拟代码:思路二:双端队列代码: 2810. 故障键盘 思路一:模拟 用StringBuilder来拼贴字符遍历字符串,如果遇到i,对拼贴好…...

xshell7连接ubuntu18.04
🎡导航小助手🎡 1.查看ubuntu IP2.开启openssh-server3.静态IP设置4.Xshell连接 1.查看ubuntu IP 输入下面命令查看IP ifconfig -a可以看到网卡是ens33,IP为192.168.3.180。 2.开启openssh-server 1、执行下句,下载SSH服务 s…...
真正的力量:实力与人际关系的平衡艺术
在当今社会,人们常常在追求个人发展和建立良好人际关系之间寻找平衡。有一种观点认为,“没有实力,就不要对别人好。不然,很容易被定义为讨好。”这句话在一定程度上揭示了实力与人际关系之间的微妙联系。本文将探讨这一观点的深层…...

Acwing.1388 游戏(区间DP对抗思想)
题目 玩家一和玩家二共同玩一个小游戏。 给定一个包含 N个正整数的序列。 由玩家一开始,双方交替行动。 每次行动可以在数列的两端之中任选一个数字将其取走,并给自己增加相应数字的分数。(双初始分都是 0分) 当所有数字都被…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...