Backup Otomatis Database MySQL Menggunakan Cron
Posted by awalJune 18, 2012
Melakukan backup database MySQL secara berkala sangat penting bagi system kita, sehingga jika terjadi kerusakan system, kita masih bisa menyelamatkan data – datanya. Tetapi jika proses backup kita lakukan secara manual tentunya akan sangat merepotkan. Pada tulisan ini akan menjelaskan bagaimana melakukan backup otomatis database mysql menggunakan cron.
Berikut adalah langkah – langkah setting autobackup mysql :
Langkah pertama adalah membuat folder tempat hasil backup (misal: /home/awal/backup) : mkdir /home/awal/backup
kedua, membuat shell script, karena proses backup dilakukan dengan menggunakan shell script : touch mysqlbackup.sh
taruh file diatas di /home/awal/backup
ketiga, isi file diatas dengan script dibawah ini, dan sesuaikan parameter koneksi dan nama – nama database yang ingin di backup : #!/bin/sh
#tanggal melakukan backup tgl=`/bin/date +%Y%m%d_%H-%M`
#folder path tempat meletakkan file backup path='/home/awal/backup'
dpath=`/bin/date +%Y/%m`
#parameter untuk koneksi kedatabase user="root"
pass="root" host="localhost" port="3306"
#nama beberapa database yang akan dibackup dbnames="dbku1 dbku2 dbku3 dbku4"
#looping untuk melakukan backup per database for db in $dbnames; do
#folder tempat file bakcup filepath=${path}/${db}/${dpath}
#namafile file backup filename=${db}_${tgl}.sql
#create direktory per database jika belum ada
if [ ! -d $filepath ]; then /bin/mkdir -p $filepath; fi
#masuk kedirektori backup cd $filepath
#proses backup
/usr/bin/mysqldump --user=${user} --password=${pass} --host=${host} --port=${port} ${db} > ${filename}
#compress file backup
/bin/tar -czf ${filename}.tar.gz $filename
#hapus file aslinya /bin/rm $filename done
keempat, pastikan script diatas bisa dieksekusi : chmod +x mysqlbackup.sh
kelima, tes apakah script diatas sudah berjalan dengan benar : ./mysqlbackup.sh
jika berjalan dengan benar maka di folder /home/awal/backup akan ada folder – folder berdasarkan nama tiap database, dan didalam folder – folder tersebut terdapat hasil backup yang sudah terkompresi.
keenam, edit crontab agar proses backup berjalan otomatis (misal: backup dilakukan tiap hari pada jam 23:30) : crontab -e
Isikan di baris paling bawah dengan script :
30 23 * * * /home/awal/backup/mysqlbackup.sh
Untuk penjelasan lebih detail mengenai cron bisa anda baca Penggunaan Cron Scheduler di Debian. NB: