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}/
相关推荐
财迅通Ai14 小时前
6000万吨产能承压 卫星化学迎来战略窗口期
大数据·人工智能·物联网·卫星化学
武子康15 小时前
大数据-263 实时数仓-Canal 增量订阅与消费原理:MySQL Binlog 数据同步实践
大数据·hadoop·后端
LJ979511115 小时前
媒体发布新武器:Infoseek融媒体平台使用指南
大数据·人工智能
科技小花15 小时前
AI重塑数据治理:2026年核心方案评估与场景适配
大数据·人工智能·云原生·ai原生
方向研究15 小时前
存储芯片生产
大数据
代码青铜15 小时前
如何用 Zion 实现 AI 图片分析与电商文案自动生成流程
大数据·人工智能
gaoshengdainzi16 小时前
GB/T23448-2019卫生洁具软管专用检测设备全套解决方案
大数据·卫生洁具软管检测设备·软管试验机
茶靡花开041517 小时前
什么是DMS经销商管理系统?经销商管理系统哪个好?
大数据·人工智能
Gofarlic_OMS17 小时前
HyperWorks用户仿真行为分析与许可证资源分点配置
java·大数据·运维·服务器·人工智能
fire-flyer18 小时前
ClickHouse系列(二):MergeTree 家族详解
大数据·数据库·clickhouse