ES备份脚本

1.

cat /opt/es_dumpfile/es_all.sh

#!/bin/bash

echo "删除16天前文件"

sh /opt/es_dumpfile/es_delefile.sh

echo "备份es数据"

sh /opt/es_dumpfile/es_dumpfile.sh

echo "异地备份数据"

sh /opt/es_dumpfile/es_scp.sh

echo "执行结束!!"

复制代码
[es@VM-30-164-centos ~]$ cat  /opt/es_dumpfile/es_delefile.sh
#!/bin/bash
# 备份目录
BACKUP_DIR="/opt/es_dumpfile"
DATE=$(date +%Y%m%d%H%M%S)
#DATA_DIR=$(date +%Y%m%d)
DEL_DATA_DIR=$(date -d "16 days ago" +%Y%m%d)
# 创建备份目录(如果不存在)
#mkdir -p ${BACKUP_DIR}/${DATA_DIR}
# 删除超过保留天数的超过16天的备份文件
rm -rf /opt/es_dumpfile/${DEL_DATA_DIR}
echo "[$(date +'%Y-%m-%d %H:%M:%S')] Old backups deleted"

[es@VM-30-164-centos ~]$ cat /opt/es_dumpfile/es_dumpfile.sh
#!/bin/bash
#删除问题仓库
echo "删除问题仓库!"
# Elasticsearch服务器地址
ES_HOST="172.16.30.164:19200"
# 仓库名称
REPO_NAME="my_backup_repo"
# 检查仓库是否存在
#response=$(curl -s -o /dev/null -w "%{http_code}" "http://${ES_HOST}/_snapshot/${REPO_NAME}")
#if [ "$response" -eq 200 ]; then
#  echo "仓库 ${REPO_NAME} 存在,正在删除..."
#  delete_response=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE -u elastic:Bigelastic.2018v6"http://${ES_HOST}/_snapshot/${REPO_NAME}")
  
#  if [ "$delete_response" -eq 200 ]; then
#    echo "仓库 ${REPO_NAME} 删除成功"
#  else
#    echo "仓库 ${REPO_NAME} 删除失败,HTTP状态码: ${delete_response}"
#  fi
#else
#  echo "仓库 ${REPO_NAME} 不存在,无需删除"
#fi
curl -X DELETE -u elastic:IyF4KMjr.O8Y6t "http://172.16.30.164:19200/_snapshot/my_backup_repo"

echo "重新添加仓库!"
curl -X PUT -u elastic:IyF4KMjr.O8Y6t "http://172.16.30.164:19200/_snapshot/my_backup_repo" -H "Content-Type: application/json" -d'
{
  "type": "fs",
  "settings": {
    "location": "/opt/backup_elastic",
    "compress": false,
    "max_snapshot_bytes_per_sec": "50mb",
    "max_restore_bytes_per_sec": "50mb"
  }
}'
echo "仓库添加成功!"

echo "开始备份数据!"
#创建备份文件夹
mkdir -p /opt/es_dumpfile/$(date +%Y%m%d)
# 1. 检查是否有正在运行的快照
SNAPSHOT_STATUS=$(curl -s -X GET "http://172.16.30.164:19200/_snapshot/my_backup_repo/_status" \
  -u "elastic:IyF4KMjr.O8Y6t" | grep "IN_PROGRESS")

if [ -n "$SNAPSHOT_STATUS" ]; then
  echo "错误:检测到未完成的快照任务,请等待!"
  exit 1
fi
# 2. 创建新快照
# 备份脚本:es_dumpfile.sh
SNAPSHOT_NAME="snapshot_$(date +%Y%m%d%H%M%S)"
curl -X PUT "http://172.16.30.164:19200/_snapshot/my_backup_repo/$SNAPSHOT_NAME?wait_for_completion=true" \
  -H "Content-Type: application/json" \
  -u "elastic:IyF4KMjr.O8Y6t" \
  -d '{
    "indices": "*",
    "ignore_unavailable": true,
    "include_global_state": false
  }'
# 3. 验证快照是否成功
if [ $? -eq 0 ]; then
  echo "快照创建成功!"
else
  echo "快照创建失败,请检查日志!"
  exit 1
fi
# 4. 将快照文件备份到制定目录
mv /opt/backup_elastic/* /opt/es_dumpfile/$(date +%Y%m%d)
echo "elastic数据备份完成!"

[es@VM-30-164-centos ~]$ cat /opt/es_dumpfile/es_scp.sh
#!/bin/bash
DATA_DIR=$(date +%Y%m%d)
scp -r /opt/es_dumpfile/${DATA_DIR}/* admae@172.16.30.210:/opt/es_dumpfile/${DATA_DIR}/
相关推荐
三水不滴3 小时前
Elasticsearch 实战系列(二):SpringBoot 集成 Elasticsearch,从 0 到 1 实现商品搜索系统
经验分享·spring boot·笔记·后端·elasticsearch·搜索引擎
拓端研究室3 小时前
2025-2026食品饮料行业全景洞察报告:婴童零辅食、量贩零食、东南亚出海 | 附180+份报告PDF、数据、可视化模板汇总下载
大数据·人工智能
远方16093 小时前
117-Oracle 26ai FILTER(过滤)子句新特性
大数据·数据库·sql·oracle·database
isNotNullX3 小时前
一文讲清8大数据清洗方法
大数据·数据库·数据挖掘·数据迁移
人工智能培训3 小时前
深度学习赋能千行百业:核心应用场景与发展展望
大数据·人工智能·具身智能·ai培训·人工智能工程师
Francek Chen3 小时前
【大数据存储与管理】分布式数据库HBase:05 HBase运行机制
大数据·数据库·hadoop·分布式·hdfs·hbase
LJ97951113 小时前
当AI遇上媒体发布:企业传播的下一站
大数据·人工智能
GIS数据转换器3 小时前
小龙虾(OpenClaw) 在低空经济领域的应用
大数据·人工智能·无人机·智慧城市·制造
zzzzzwbetter3 小时前
Hadoop完全分布式部署-Master的NameNode以及Slaver2的DataNode未启动
大数据·hadoop·分布式