cloud-init/mongo-backup.sh
2025-05-03 16:08:41 +03:00

69 lines
1.9 KiB
Bash
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
# Конфигурация
BACKUP_DIR="dump"
ARCHIVE_NAME="mongo-staging-backup.tar.gz"
S3_TARGET="tw/3c580be9-5ad7b4ab-08c3-4eeb-90b9-767746b1d4a7/mongo-staging"
TELEGRAM_BOT_TOKEN="6414077478:AAFk03HezovLT2kO_i9OYswH8Weirsgp9GU"
TELEGRAM_CHAT_ID="-1002045305199"
# Функция для отправки сообщения в Telegram
send_telegram() {
local message="$1"
curl -s -X POST \
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-d "chat_id=${TELEGRAM_CHAT_ID}" \
-d "text=${message}" \
-d "parse_mode=Markdown" >/dev/null
}
# Логирование
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
# Создаем дамп MongoDB
log "Создание дампа MongoDB..."
mongodump --host=localhost --out="$BACKUP_DIR"
if [ $? -ne 0 ]; then
error_msg="❌ Ошибка при создании дампа MongoDB"
log "$error_msg"
send_telegram "$error_msg"
exit 1
fi
# Архивируем дамп
log "Создание архива $ARCHIVE_NAME..."
tar -czvf "$ARCHIVE_NAME" "$BACKUP_DIR"
if [ $? -ne 0 ]; then
error_msg="❌ Ошибка при создании архива"
log "$error_msg"
send_telegram "$error_msg"
exit 1
fi
# Загружаем в S3
log "Загрузка архива в S3..."
mc cp "$ARCHIVE_NAME" "$S3_TARGET/$ARCHIVE_NAME"
if [ $? -ne 0 ]; then
error_msg="❌ Ошибка при загрузке в S3"
log "$error_msg"
send_telegram "$error_msg"
exit 1
fi
# Удаляем временные файлы
log "Очистка временных файлов..."
rm -rf "$BACKUP_DIR" "$ARCHIVE_NAME"
# Отправляем уведомление
success_msg="✅ Бэкап MongoDB произведён\n\nАрхив: $ARCHIVE_NAME\nS3 путь: $S3_TARGET/$ARCHIVE_NAME"
log "$success_msg"
send_telegram "$success_msg"
log "Процесс завершен успешно"
exit 0