使用elasticsearch定时删除索引数据

 更新时间:2021年03月29日 11:24:06   作者:Menardღ  
这篇文章主要介绍了使用elasticsearch定时删除索引数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1、有的时候我们在使用ES

由于资源有限或业务需求,我们只想保存最近一段时间的数据,所以有必要做定时删除数据。

2、编写脚本

vim del_es_by_day.sh
#!/bin/bash
#定时删除elasticsearch索引
#author menard 2019-3-25
date=`date -d "-7 days" "+%Y.%m.%d"`
/usr/bin/curl -v --user elastic:password -XDELETE "http://192.168.10.201:9200/*-$date"

增加可执行权限 chmod +x del_es_by_day.sh

3、创建用于测试的索引

put test-2019.03.18
put index-2019.03.18

4、执行脚本测试结果,可以看到删除成功

5、做定时任务

crontab -e
00 01 * * * /workspace/script/del_es_by_day.sh

补充:Elasticsearch定时备份索引数据与恢复

定时备份脚本

Linux定时任务功能使用cron服务来进行

编写定时任务的cron表达式

crontab -e #进入cron定时任务编辑

定时任务

*/1 * * * * /opt/scheduler/es_bk.sh >> /opt/scheduler/bk_log.txt 2>&1

每隔1分钟定时执行 /opt/scheduler/目录下的es_bk.sh脚本,将数据内容写入到 /opt/scheduler目录下的bk.log.txt文件中

查看一下es_bk.sh脚本内容

#! /bin/bash
echo '=================================start======================================'
#删除备份的快照
curl -i -X DELETE localhost:9200/_snapshot/es_backup/snapshot01
#再次备份
curl -i -X PUT localhost:9200/_snapshot/es_backup/snapshot01
echo '==================================end======================================='

ES备份数据需要将要备份的索引数据快照一份,需要指定一个快照名,且不能使用相同的快照,所以在每次备份之前需要删除旧的快照,再备份。

ES备份与恢复

创建一个备份仓库(目录)

mkdir -p /bk/es/data
#修改权限
chmod -R 777 bk

修改elasticsearch.yml文件,指定仓库位置

发送初始化仓库请求

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"type": "fs","settings": {"location": "/bk/es/data"}}' localhost:9200/_snapshot/es_backup

es_backup是备份命名空间,可以随意指定

创建第一份快照

curl -i -X PUT localhost:9200/_snapshot/es_backup/snapshot01

将使用es_backup这个备份将es的所有索引数据备份到snapshot01这个快照下,当然也可以只备份指定索引

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01

重启定时任务

systemctl restart cron

恢复索引

恢复指定

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X POST --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01/_restore

恢复所有

curl -i -X POST localhost:9200/_snapshot/es_backup/snapshot01/_restore

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • docker部署MySQL时无法启动问题的解决方法

    docker部署MySQL时无法启动问题的解决方法

    最近做项目,遇到这样问题,docker中的mysql不能启动,下面这篇文章主要给大家介绍了关于docker部署MySQL时无法启动问题的解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • 解决docker pull出现错误:Error response from daemon

    解决docker pull出现错误:Error response from daemon

    这篇文章主要给大家介绍了关于解决docker pull出现错误:Error response from daemon的相关资料,这个错误提示一般是因为你没有权限拉取对应的镜像,文中将解决办法介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Docker 解决容器时间与主机时间不一致的问题三种解决方案

    Docker 解决容器时间与主机时间不一致的问题三种解决方案

    这篇文章主要介绍了Docker 解决容器时间与主机时间不一致的问题的相关资料,这里提供了三种方法,供大家参考,需要的朋友可以参考下
    2016-12-12
  • 如何将Docker的构建时间减少40%(推荐)

    如何将Docker的构建时间减少40%(推荐)

    这篇文章主要介绍了如何将Docker的构建时间减少40%,本文描述了我们在优化CI管道后获得的一些新见解,需要的朋友可以参考下
    2023-11-11
  • docker部署nodejs开发环境详细步骤(基础示例篇)

    docker部署nodejs开发环境详细步骤(基础示例篇)

    这篇文章主要给大家介绍了docker部署nodejs开发环境详细步骤,docker是一个开源的应用容器引擎,可以为我们提供安全、可移植、可重复的自动化部署的方式,需要的朋友可以参考下
    2023-10-10
  • Docker部署Kafka以及Spring Kafka实现

    Docker部署Kafka以及Spring Kafka实现

    这篇文章主要介绍了Docker部署Kafka以及Spring Kafka实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • docker实现redis集群搭建的方法步骤

    docker实现redis集群搭建的方法步骤

    本文主要介绍了docker实现redis集群搭建的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • docker容器与宿主机的数据交互方式总结

    docker容器与宿主机的数据交互方式总结

    这篇文章主要给大家介绍了关于docker容器与宿主机的数据交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 使用脚本一键打包并上传docker镜像的实现代码

    使用脚本一键打包并上传docker镜像的实现代码

    这篇文章主要介绍了使用脚本一键打包并上传docker镜像的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • docker修改容器的端口、容器名、映射地址以及注意事项

    docker修改容器的端口、容器名、映射地址以及注意事项

    在日常的docker运维中,经常遇到修改容器的端口、容器名、映射地址等信息,这篇文章主要给大家介绍了关于docker修改容器的端口、容器名、映射地址以及注意事项的相关资料,需要的朋友可以参考下
    2022-08-08

最新评论