shell脚本es备份数据

该博客介绍使用shell脚本进行ES数据备份,基于hdfs_repository实现,还给出了可参考的之前文档链接https://blog.youkuaiyun.com/guajidai0165/article/details/90343296 。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell脚本es备份数据,基于hdfs_repository,可参考我之前的文档https://blog.youkuaiyun.com/guajidai0165/article/details/90343296

#!/bin/bash
#在windows编写的代码可能运行有问题执行以下 1>vim redisshell.sh  2>:set ff=unix
esip=192.168.8.23
esbakindex=poc14,poc8
#需要提前创建eslogindex的mapping信息
eslogindex=poc9/resultdata9
esbakfile=/bigdata/bak/es/baklogs
day1=$(date -d -1day +%Y%m%d)
day7=$(date -d -7day +%Y%m%d)
transTime=$(date '+%Y-%m-%d')

if [ ! -d $esbakfile ]; then
 mkdir -p $esbakfile
fi
echo -e "\r\n"  >> $esbakfile/bak_es_log.logs

echo "=================start====$(date '+%Y-%m-%d %H:%M:%S')=================" >> $esbakfile/bak_es_log.logs

#备份新的数据,指定新的索引库 
param=`curl -XPUT "http://$esip:9200/_snapshot/my_hdfs_repository/snapshot_$day1?wait_for_completion=true" -d '{
    "indices": "'${esbakindex}'",
    "ignore_unavailable": true,
    "include_global_state": false,
    "partial": true
}'`

echo -e "\r\n"  >> $esbakfile/bak_es_log.logs

result1=$(echo $param | grep "SUCCESS")
if [[ "$result1" != "" ]]; then  
  echo " create new snapshot_$day1 success" >> $esbakfile/bak_es_log.logs
  #发送数据到es库
  curl -XPUT "http://$esip:9200/${eslogindex}/${transTime}create" -d'
{
  "transTime":"'$transTime'",
  "operation":"create",
  "snapshotname":"snapshot_'$day1'",
  "status":"success"
}'

else
  echo -e "create new snapshot_$day1 fail !!! " >> $esbakfile/bak_es_log.logs
  echo -e ${param} >> $esbakfile/bak_es_log.logs
  curl -XPUT "http://$esip:9200/${eslogindex}/${transTime}create" -d'
{
  "transTime":"'$transTime'",
  "operation":"create",
  "snapshotname":"snapshot_'$day1'",
  "status":"fail"
}'
fi


echo -e "\r\n"   >> $esbakfile/bak_es_log.logs


#删除7天以前的数据
param2=`curl -XDELETE "http://$esip:9200/_snapshot/my_hdfs_repository/snapshot_$day7?pretty"`
result2=$(echo $param2 | grep "acknowledged")
if [[ "$result2" != "" ]]; then
  echo " delete  snapshot_$day7 success " >> $esbakfile/bak_es_log.logs
  curl -XPUT "http://$esip:9200/${eslogindex}/${transTime}delete" -d'
{
  "transTime":"'$transTime'",
  "operation":"delete",
  "snapshotname":"snapshot_'$day7'",
  "status":"success"
}'
else
  echo " delete snapshot_$day7 fail !!! " >> $esbakfile/bak_es_log.logs
  echo  $param2 >> $esbakfile/bak_es_log.logs
  curl -XPUT "http://$esip:9200/${eslogindex}/${transTime}delete" -d'
{
  "transTime":"'$transTime'",
  "operation":"delete",
  "snapshotname":"snapshot_'$day7'",
  "status":"fail"
}'
fi

echo -e "\r\n"   >> $esbakfile/bak_es_log.logs


echo "======================end====$(date '+%Y-%m-%d %H:%M:%S')=======================" >> $esbakfile/bak_es_log.logs

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值