当前位置: 首页 > news >正文

python定时删除指定索引

脚本

import logging
from datetime import datetime, timedelta
from elasticsearch import Elasticsearch# 配置日志记录
logging.basicConfig(filename='delete_uat_indices.log',level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s'
)# Elasticsearch 集群的连接信息
ELASTICSEARCH_HOST = "http://192.178.18.209:9200"  # 修改为你的 Elasticsearch 地址
USERNAME = "elastic"  # 修改为你的用户名
PASSWORD = "7F9L%mYWjWtb"  # 修改为你的密码
INDEX_PATTERN = "*uat*"  # 匹配带有 "uat" 的索引def delete_old_indices():# 连接到 Elasticsearch 集群es = Elasticsearch([ELASTICSEARCH_HOST], basic_auth=(USERNAME, PASSWORD))# 检查连接是否成功if not es.ping():logging.error("无法连接到 Elasticsearch 集群")returnlogging.info("成功连接到 Elasticsearch 集群")# 计算 5 天前的日期five_days_ago = datetime.now() - timedelta(days=2)date_str = five_days_ago.strftime('%Y.%m.%d')# 获取所有索引(确保使用关键字参数)try:indices = es.indices.get(index="*uat*")  # 使用关键字参数except Exception as e:logging.error(f"获取索引列表失败: {e}")return# 过滤出符合条件的索引indices_to_delete = []for index_name in indices.keys():if not index_name.startswith(".") and "uat" in index_name:# 提取索引名称中的日期部分try:index_date_str = index_name.split("-")[-1]  # 假设日期在索引名称的最后部分index_date = datetime.strptime(index_date_str, '%Y.%m.%d')if index_date < five_days_ago:indices_to_delete.append(index_name)except Exception as e:logging.warning(f"无法解析索引名称 {index_name} 的日期部分: {e}")if not indices_to_delete:logging.info(f"未找到符合条件的索引: 包含 'uat' 且日期为 {date_str}")return# 删除符合条件的索引for index in indices_to_delete:try:es.indices.delete(index=index)logging.info(f"成功删除索引: {index}")except Exception as e:logging.error(f"删除索引 {index} 时失败: {e}")if __name__ == "__main__":delete_old_indices()

定时任务

crontab -e
#每天23点30定时删除5天前的uat环境日志
30 23 * * * /usr/local/python-3.9/bin/python3.9 /data/delete_old_indices/delete_uat_old_indices.py >/dev/null 2>&1

相关文章:

  • 2025年高防IP与游戏盾深度对比:如何选择最佳防护方案?
  • Jenkins 构建日志统一上报:企业级 DevOps 管理实践
  • Jenkins
  • 基于微信小程序的智能问卷调查系统设计与实现(源码+定制+解答)基于微信生态的问卷管理与数据分析系统设计
  • 游戏引擎学习第308天:调试循环检测
  • 基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(五)
  • PaddleX 使用案例
  • 【Hadoop】Hadoop 的入门概述
  • kafka吞吐量提升总结
  • ATGM332D-F8N22单北斗多频定位导航模块
  • 自动生成md文件以及config.mjs文件-vitepress
  • Docker部署Zookeeper集群
  • 技术服务业-首套运营商网络路由5G SA测试专网搭建完成并对外提供服务
  • 分布式缓存:缓存的三种读写模式及分类
  • Flume的大概简单介绍
  • AGV(自动导引车)通信协议及通信链路性能需求分析
  • 移远三款主流5G模块RM500U,RM520N,RG200U比较
  • RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试
  • EasyRTC音视频实时通话WebP2P技术赋能的全场景实时通信解决方案
  • 力扣-最大连续一的个数
  • 国际网站建设与维护/游戏推广是干什么的
  • 做纺织生意用什么网站好/建站工具
  • 网站横幅js代码/怎么开个人网站
  • 网站建设最新活动/网页制作免费模板
  • 没有页面的网站怎么做性能测试/百度一下官网首页下载
  • 建设公司网站费用/引流推广多少钱一个