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}/
相关推荐
跨境小彭1 天前
Temu拉美站点铺货实操复盘:手动复制痛点与批量自动化解决方案
服务器·人工智能·搜索引擎·自动化·temu电商运营
Qyr991 天前
2026-2032直接芯片液冷板市场爆发式增长:AI算力浪潮下的热管理核心赛道
大数据·人工智能
蓝色的风-20261 天前
国产算力双雄对决:曙光8000十万卡集群 vs 华为昇腾950超节点深度解析
大数据·人工智能·自然语言处理
泛联新安1 天前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
杨云龙UP1 天前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
SelectDB技术团队1 天前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris
大大大大晴天1 天前
每天认识一个组件:远端数据服务Apache Celeborn
大数据
幂律智能1 天前
海外业务不同,合同系统该怎么建?
大数据·人工智能
Leo.yuan1 天前
数据开发即质量检测:FineDataLink 5.0 在生产数据链路中的一体化实践
大数据
哲霖软件1 天前
非标机械设备公司怎么做信息化?破解通用ERP水土不服难题
大数据·运维