Script shell untuk backup MySQL

Setelah sekian lama tidak menampakkan diri, kali ini saya ingin berbagi ilmu tentang cara backup MySQL pada OS Linux. Mungkin sudah banyak tulisan atau tutorial yang membahas backup MySQL, tapi saya rasa tidak ada salahnya, saya tuliskan kembali di sini. Pada tulisan ini saya menggunakan Ubuntu 10.04.

Langkah pertama adalah membuat script shell yang di simpan dengan nama backup-mysql.sh

$sudo pico backup-mysql.sh

tuliskan kode perintah berikut:

#!/bin/bash
### MySQL Server Login Info ###
MUSER="root"
MPASS="mindcontrol"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
BAK="/backup/mysql"
GZIP="$(which gzip)"
### FTP SERVER Login info ###
#FTPU="FTP-SERVER-USER-NAME"
#FTPP="FTP-SERVER-PASSWORD"
#FTPS="FTP-SERVER-IP-ADDRESS"
NOW=$(date +"%d-%m-%Y")

### See comments below ###
### [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* ###
[ ! -d "$BAK" ] && mkdir -p "$BAK"

DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
 FILE=$BAK/$db.$NOW.sql.gz
 $MYSQLDUMP --single-transaction  -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 >$
done

Perintah diatas akan membuat di rektori baru yaitu /backup/mysql , perhatikan baris BAK=”/backup/mysql”.

Jadikan executable dengan memberikan perintah:

$sudo chmod 775 backup-mysql.sh

Sampai di sini script sudah bisa di jalankan dengan perintah

$sudo ./backup-mysql.sh

Lihat hasilnya:

$ls -l /backup/mysql/

Jika berhasil, akan di tampilkan beberapa file backup dengan ektensi .sql.gz

Menambahkan perintah pada cron

Agar script diatas bisa di jalankan secara otomatis oleh sistem, kita bisa menggunakan cron.

Untuk menampilkan schedule yang sedang berjalan di sistem, gunakan perintah:

$sudo crontab -l

Tambahkan shcedule untuk menjalankan script diatas:

$sudo crontab -e

tambahkan baris berikut untuk menjalankan script pada tengah malam:

@midnight /home/USER/backup-mysql.sh

Catatan: ganti USER dengan nama user pada sistem Anda

Selamat mencoba