Halo, berikut ini saya akan share sebuah shell script sederhana yg sangat bermanfaat untuk membackup seluruh database SQL dalam sebuah server. Berbeda dengan command mysqldump yg pernah saya posting di sini, yg mana semua database akan terbackup menjadi satu buah file, nah yg ini tiap-tiap database akan terbackup sendiri-sendiri.
Contoh script backup sql yaitu sbb:
#! /bin/bash
databases=`mysql -e 'show databases' -s --skip-column-names -u root -p'8Y8bm0PR6E' |grep -Ev "(admin_default|phpmyadmin|information_schema|performance_schema|mysql)"`
for db in $databases; do
mysqldump --add-drop-table -u root -p'8Y8bm0PR6E' --databases $db | gzip -c | ssh root@198.17.221.32 "cat > /var/www/html/backup/sql/$db-`date +"%d-%m-%Y"`.sql.gz"
done
Simpan script di atas ke sebuah file dg nama terserah di direktori /usr/bin
Misalnya /usr/bin/backupsql
Kemudian ubah menjadi executable dengan command:
chmod +x /usr/bin/backupsql
Silakan diedit sesuai keperluan, jangan lupa ubah password root mysql sesuai password di server Anda. Script ini jg akan langsung mengirim hasil backup tiap database ke remote server (pada contoh di atas file akan terkirim ke server dg ip 198.17.221.32). Filenya jg akan terkompres oleh gzip
. Agar script ini bisa dijalankan otomatis dg kata lain jadi sebuah autobackup maka pastikan dari server ini bisa login ke server backup secara password-less. Langkah terakhir yaitu tinggal menjadwalkan untuk running (misalnya tiap hari) melalu /etc/crontab.
Contoh autorun tiap jam 00.00 waktu server:
0 0 * * * root /usr/bin/backupsql
Jangan lupa restart crond:
service crond restart