#!/bin/bash # --- НАЛАШТУВАННЯ --- REMOTE_DIR="/Volumes/Just/sql advanced/lab2-1/backups" # Новий формат: рік-місяць-день_години-хвилини-секунди DATE=$(date +%Y-%m-%d_%H-%M-%S) FILENAME="OrdersDB_${DATE}.sql" BACKUP_PATH="/tmp/$FILENAME" echo "Starting dump of OrdersDB ($DATE)..." # 1. Створення дампу бази даних # Додано --set-gtid-purged=OFF для сумісності з mysql:latest # Додано --single-transaction для уникнення помилок консистентності mysqldump -h db -u root -p$MYSQL_ROOT_PASSWORD \ --set-gtid-purged=OFF \ --single-transaction \ OrdersDB > $BACKUP_PATH if [ $? -eq 0 ]; then echo "Dump created: $FILENAME. Uploading to Mac..." # 2. Завантаження через SFTP lftp -u $SFTP_USER, sftp://$SFTP_HOST <&1) if [ $? -eq 0 ]; then echo "Email sent!" else echo "Email error: $EMAIL_LOG" fi else echo "SFTP Error!" echo -e "Subject: Backup FAILED: SFTP Error ($DATE)\n\nПомилка передачі файлу $FILENAME на диск." | msmtp $EMAIL_TO fi # Видаляємо тимчасовий файл rm "$BACKUP_PATH" else echo "MySQL Dump Error!" echo -e "Subject: Backup FAILED: SQL Error ($DATE)\n\nНе вдалося створити дамп бази OrdersDB. Перевірте логі контейнера." | msmtp $EMAIL_TO fi