Wednesday, January 27, 2010

Auto Backup Database MySQL menggunakan Crontab + Shell Scripting

Linux Shell Scripting adalah serangkaian command yang ditulis dalam file teks biasa, kemudian file teks tersebut dipanggil untuk menjalan command didalamnya.
Command pada linux shell bermacam-macam seperti create/update/delete sebua file atau folder, melakukan mounting, sampai bisa melakukan backup database.

Sedangkan Crontab adalah aplikasi penjadwalan pada linux yang memungkinkan untuk eksekusi secara otomatis program/aplikasi/script dengan waktu yang telah dijadwalkan.

Jadi dengan dua buah kemampuan linux tersebut adalah kombinasi lengkap untuk membuat backup database secara otomatis dan terjadwal.


Dibawah ini adalah step by step untuk membuat Auto Backup Database MySQL

1. Buat semua file, sebagai contoh auto_backup.sh Pada file tersebut tuliskan linux shell scripting, seperti dibawah ini:

v_tgl=`date +%Y%m%d_%H%M%S`;
v_name=bukutamu_$v_tgl.sql ;
mysqldump -uroot -ppass bukutamu > /home/dendie/Desktop/$v_name;

Script diatas adalah shell scripting yang melakukan dump/backup dari database bernama bukutamu ke alamat /home/dendie/Desktop/

Sedangkan bagian Script yang melakukan backup database adalah

mysqldump -uroot -ppass bukutamu > /home/dendie/Desktop/$v_name;

variabel $vname berisikan format penamaan file hasil script shell yang digunakan sebagai nama hasil dump/backup database.

contoh hasil backup adalah bukutamu_20100128_203001.sql

Sedangkan bagian Script yang membuat format penamaan file adalah

v_tgl=`date +%Y%m%d_%H%M%S`;
v_name=bukutamu_$v_tgl.sql ;


2. Set file auto_backup.sh sebagai execute file

sudo chmod +x auto_backup.sh


3. Pada command line set Crontab/Scheduling untuk eksekusi file auto_backup.sh

sudo crontab -e

Kemudian ketikan seperti dibawah ini

*/5 * * * * /home/dendie/Desktop/my_data/auto_backup.sh > /home/dendie/Desktop/auto_backup.log

Contoh diatas membuat crontab/scheduling untuk eksekusi file auto_backup.sh setiap 5 menit sekali dan membuat log/catatan ke file auto_backup.log apabila terjadi trouble saat eksekusi.

Berikut ini penjelasan setiap bagian setting crontab

Bagian untuk setting schedule setiap lima menit sekali

*/5 * * * *

Bagian Memberi Alamat file shell /home/dendie/Desktop/auto_backup.sh yang akan dieksekusi

/home/dendie/Desktop/my_data/auto_backup.sh

Bagian Membuat file log auto_backup.log yang otomatis dibuat saat crontab dieksekusi untuk mencatat bila terjadi trouble.

/home/dendie/Desktop/my_data/auto_backup.log

Untuk setting waktu penjadwalan crontab yang lain dapat dilihat di klik


Referensi:
  • Linux Shell Scripting > klik
  • Crontab Set Time Schedule > klik
Keterangan:
  • OS yang digunakan Ubuntuk Karmic Koala
  • Linux shell yang digunakan BASH

4 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. sry mas kalau misalnya saya mau back up mysql dari hari senin s/d jumat di jm 6 sore secara otomatis gmn mas ? ? ? tolong pencerahannya mas.
    terimakasih

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Cara nya sepert ini mas

      sudo crontab -e

      * 18 * * 0,1,2,3,4

      /home/dendie/Desktop/my_data/auto_backup.sh

      Delete