Created
July 2, 2024 01:40
-
-
Save hendisantika/6f58f36eeb9aaa958dca05939513b161 to your computer and use it in GitHub Desktop.
MySQL Daily Backup Database
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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