#!/bin/bash # Backup MySQL sebelum sebarang update production # Guna: ./scripts/backup-db.sh set -e BACKUP_DIR="/svr/speech2text/backups" TIMESTAMP=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="$BACKUP_DIR/speech2text_$TIMESTAMP.sql.gz" mkdir -p "$BACKUP_DIR" echo "Membuat backup database..." docker compose exec -T mysql mysqldump \ -u root -p"$MYSQL_ROOT_PASSWORD" \ --single-transaction \ --quick \ speech2text | gzip > "$BACKUP_FILE" echo "Backup selesai: $BACKUP_FILE" echo "Saiz: $(du -h $BACKUP_FILE | cut -f1)" # Padam backup lebih 30 hari find "$BACKUP_DIR" -name "*.sql.gz" -mtime +30 -delete echo "Backup lama (>30 hari) dipadam."