Skip to content

Instantly share code, notes, and snippets.

@hendisantika
Created July 2, 2024 01:40
Show Gist options
  • Save hendisantika/6f58f36eeb9aaa958dca05939513b161 to your computer and use it in GitHub Desktop.
Save hendisantika/6f58f36eeb9aaa958dca05939513b161 to your computer and use it in GitHub Desktop.
MySQL Daily Backup Database
# backup-database.sh
#!/bin/bash
# Name: mysql-daily.backup.sh
# Date: Monday, 1 July 2024 09.00 WIB
# Usage: Ubuntu Linux Backup MySQL Server Shell Script
# Author: Hendi Santika https:/s.id/hendisantika under GPL v2.x+
# -------------------------------------------------------------------
# Konfigurasi
DB_NAME="DB_NAME"
DB_USER="DB_USER"
DB_PASSWORD="DB_PASSWORD"
BACKUP_DIR="/home/deployer/backup-db"
S3_BUCKET="daily/backup"
DATE=$(date +%Y%m%d_%H%M)
BACKUP_FILE="$BACKUP_DIR/db-backup-$DATE.sql"
COMPRESSED_FILE="$BACKUP_DIR/db-backup-$DATE.tar.bz2"
# Buat backup directory jika belum ada
mkdir -p $BACKUP_DIR
# Dump database ke file backup
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE
# Periksa apakah backup berhasil
if [ $? -eq 0 ]; then
echo "Database backup successful, compressing the backup..."
# Compress the backup file
tar -czvf $COMPRESSED_FILE -C $BACKUP_DIR $(basename $BACKUP_FILE)
# Periksa apakah kompresi berhasil
if [ $? -eq 0 ]; then
echo "Compression successful, uploading to S3..."
# Upload compressed file ke S3
aws s3 cp $COMPRESSED_FILE s3://$S3_BUCKET/
# Periksa apakah upload berhasil
if [ $? -eq 0 ]; then
echo "Upload to S3 successful"
# Hapus file backup lokal jika tidak dibutuhkan lagi
rm $BACKUP_FILE
rm $COMPRESSED_FILE
else
echo "Upload to S3 failed"
fi
else
echo "Compression failed"
fi
else
echo "Database backup failed"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment