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
|
4、执行脚本测试结果,可以看到删除成功
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文件,指定仓库位置
发送初始化仓库请求
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
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/qq_41980563/article/details/88788514