• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用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 pull镜像报错的问题
    下一篇:docker启动ES内存溢出的解决方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    使用elasticsearch定时删除索引数据 使用,elasticsearch,定时,删除,