使用elasticsearch定时删除索引数据

2025-05-27 0 80

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

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

2、编写脚本

?

1

2

3

4

5

6
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、创建用于测试的索引

?

1

2
put test-2019.03.18

put index-2019.03.18

使用elasticsearch定时删除索引数据

使用elasticsearch定时删除索引数据

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

使用elasticsearch定时删除索引数据

使用elasticsearch定时删除索引数据

5、做定时任务

?

1

2
crontab -e

00 01 * * * /workspace/script/del_es_by_day.sh

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

定时备份脚本

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

编写定时任务的cron表达式

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

定时任务

?

1
*/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脚本内容

?

1

2

3

4

5

6

7
#! /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备份与恢复

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

?

1

2

3
mkdir -p /bk/es/data

#修改权限

chmod -R 777 bk

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

使用elasticsearch定时删除索引数据

发送初始化仓库请求

?

1
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是备份命名空间,可以随意指定

创建第一份快照

?

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

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

?

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

重启定时任务

?

1
systemctl restart cron

恢复索引

恢复指定

?

1
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

恢复所有

?

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

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

原文链接:https://blog.csdn.net/qq_41980563/article/details/88788514

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 行业资讯 使用elasticsearch定时删除索引数据 https://www.kuaiidc.com/64116.html

相关文章

发表评论
暂无评论