k8sConfigs/efk/backUpElasticSearch.sh
2025-01-23 01:35:27 +08:00

69 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 设置日期格式:例如 2024-12-05-23
CURRENT_DATE=$(date "+%Y-%m-%d-%H")
# 获取 Elasticsearch 的 CLUSTER-IP
ELASTICSEARCH_IP=$(microk8s.kubectl get service/elasticsearch -n efk -o json | jq -r '.spec.clusterIP')
# 调试:检查获取到的 IP 地址
echo "Elasticsearch IP: ${ELASTICSEARCH_IP}"
# 如果获取到的 IP 地址为空,则退出脚本
if [ -z "$ELASTICSEARCH_IP" ]; then
echo "无法获取到 Elasticsearch IP 地址,退出脚本。"
exit 1
fi
# Elasticsearch 用户名和密码
USER="elastic"
PASSWORD="your_secure_password"
# 尝试删除当前小时的备份(如果存在)
DELETE_CURRENT_SNAPSHOT_URL="http://${ELASTICSEARCH_IP}:9200/_snapshot/my_backup/snap-${CURRENT_DATE}"
echo "尝试删除当前小时的备份:${DELETE_CURRENT_SNAPSHOT_URL}"
curl -u ${USER}:${PASSWORD} -X DELETE "${DELETE_CURRENT_SNAPSHOT_URL}"
# 检查删除操作是否成功
if [ $? -eq 0 ]; then
echo "成功删除当前小时的备份:${CURRENT_DATE}"
else
echo "当前小时的备份不存在,继续进行创建操作。"
fi
# 创建当前小时的快照
BACKUP_URL="http://${ELASTICSEARCH_IP}:9200/_snapshot/my_backup/snap-${CURRENT_DATE}"
echo "备份请求的 URL: ${BACKUP_URL}"
curl -u ${USER}:${PASSWORD} -X PUT "${BACKUP_URL}" -H 'Content-Type: application/json' -d '{
"indices": "*",
"ignore_unavailable": true,
"include_global_state": false
}'
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "备份成功:${CURRENT_DATE}"
# 删除7天前的备份
OLD_SNAPSHOT_DATE=$(date --date='7 days ago' "+%Y-%m-%d-%H")
DELETE_URL="http://${ELASTICSEARCH_IP}:9200/_snapshot/my_backup/snap-${OLD_SNAPSHOT_DATE}"
# 打印删除请求的 URL 进行调试
echo "删除旧备份请求的 URL: ${DELETE_URL}"
# 使用 curl 删除旧备份
curl -u ${USER}:${PASSWORD} -X DELETE "${DELETE_URL}"
if [ $? -eq 0 ]; then
echo "成功删除7天前的备份${OLD_SNAPSHOT_DATE}"
else
echo "删除7天前的备份失败${OLD_SNAPSHOT_DATE}"
fi
else
echo "备份失败:${CURRENT_DATE}"
fi
echo "当前快照列表:"
curl -u elastic:your_secure_password -X GET "http://${ELASTICSEARCH_IP}:9200/_snapshot/my_backup/_all" | jq -r '.snapshots[].snapshot'