MySQL DB Backup and Upload to Amazon AWS S3
Fungsi ini sama saya dengan cara backup database mysql lain-nya, yang membedakan adalah hasil backup di upload ke Amazon AWS S3.
Untuk upload menggunakan 3rd party tool, http://s3tools.org/s3cmd. Dan otomatis juga harus mempunyai account AWS S3 yang sudah di configure bucket -nya.
#!/bin/sh ######################################################### ## DB Backup to AWS S3 ## ## Using http://s3tools.org/s3cmd for upload to AWS S3 ## ## Ver 1.0 ## ## [email protected] ## ## 30 December 2015 ## ######################################################### ## ## 20151230 : - Initial scripts ## ## ##
## Configuration
# Date format DATE=`date +"%s - %A %d %B %Y @ %H%M"`
# Direktori dimana script ini disimpan BASEDIR="{DIRECTORY_OF_SCRIPT}"
# File-file konfigurasi LOCK_FILE="$BASEDIR/logs/lock_db-backup"
# Database DBPASS="{DATABASE_NAME}"
# Amazon AWS S3
AWS_BUCKET="s3://{BUCKET_NAME}/database"
## Scripts
cd $BASEDIR
#--Cek lock file, kalau tidak ada buat dan jalankan script, kalau tidak ada mati--# PROC=$(cat $LOCK_FILE)
if [ "$PROC" != "" ]; then exit 1 fi
echo "running" > $LOCK_FILE
#--Backup and Upload to AWS S3 Process--# DATABASES=`mysql -u root -p$DBPASS -e "SHOW DATABASES;" | tr -d "| " | grep -v "\(Database\|information_schema\|performance_schema\|mysql\|test\)"`
for myDB in $DATABASES do
FILENAME="$DATE - $myDB.sql.gz" TMPFILE="/tmp/$FILENAME" OBJECT="$AWS_BUCKET/$DATE/$FILENAME"
ionice -c3 nice -n19 mysqldump -u root -p$DBPASS --triggers --routines --force --opt --databases "$myDB" | gzip -c > "$TMPFILE"
s3cmd put "$TMPFILE" "$OBJECT"
rm -f "$TMPFILE"
done #--End - Backup and Upload to AWS S3 Process--#
##--Proses selesai, hapus status lock--## cat /dev/null > $LOCK_FILE











