69 lines
1.9 KiB
Bash
69 lines
1.9 KiB
Bash
#!/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
|