Sabtu, 31 Agustus 2013

Otomatis Mengirim Backup Database Ke Email Dengan Mutt

Backup database merupakan hal penting yang harus dilakukan pemilik website, terutama yang memiliki bisnis serius diwebnya, backup database berguna jika suatu waktu terjadi hal yang tidak diinginkan seperti data website hilang / rusak, website tidak dapat diakses dalam jangka waktu lama, maka pemilik web dapat segera memindahkan websitenya ke server lain agar tetap online.
Untuk itu diperlukan backup database secara teratur / berkala, salah satu metode backup otomatis database MySQL secara berkala adalah dengan memanfaatkan fitur cronjob, bagaimana alur backupnya?

1. Database akan di generate menggunakan perintah shell mysqldump, berikut adalah contohnya
mysqldump --opt -Q -u USERDATABASE --password=PASSWORD_DATABASE USERDATABASE | gzip > /home/username/buatfolderanda/namafiledatabase.sql.gz
untuk USERDATABASE diganti dengan username database MySQL Anda,
untuk PASSWORD_DATABASE diganti dengan password database MySQL Anda,
untuk /home/username/buatfolderanda/namafiledatabase.sql.gz  silahkan diubah menjadi directory Anda sendiri, misal untuk cpanel biasa formatnya /home/username/buatfolderanda/namafiledatabase.sql.gz yang penting diluar folder public_html,
untuk kloxo biasa formatnya  /home/admin/buatfolderanda/namafiledatabase.sql.gz  yang penting tidak dibuat di folder yang dapat diakses publik melalui web.
Jika sudah Anda dapat melakukan test menjalankan perintah shell diatas dengan menggunakan SSH misalnya, kalau sukses maka database MySQL anda akan tampil di folder tadi.

2. Setelah usai ditest, maka perintah shell diatas tadi dimasukan kedalam cronjob, pilihlah waktu cronjob harian dengan jam dan menit spesifik, misal setiap hari pukul 23.48.

3. Cek dulu apakah mutt sudah terinstall di server Anda, untuk OS Centos jalankan perintah ini di SSH:
$ rpm -qa | grep mutt
jika sudah terinstall nanti outputnya akan keluar versi mutt, jika belum terinstall maka kita dapat install menggunakan perintah yum jika di CentOS
yum install mutt
Maka mutt sudah terinstall dan siap dijalankan.

4. Sekarang tinggal menformat perintah shell untuk mutt-nya formatnya adalah sebagai berikut:
mutt  -s "Backup MySQL"  alamat@email.anda -a /home/admin/buatfolderanda/namafiledatabase.sql.gz
silahkan sesuaikan alamat@email.anda dengan alamat email Anda yang akan dikirimkan file backup MySQL,
silahkan sesuaikan /home/admin/buatfolderanda/namafiledatabase.sql.gz dengan directory dan file backup yang sebelumnya sudah di generate otomatis di tahap no. 2 tadi.
Kalau perlu perintah diatas tadi kita test jalankan di shell command / SSH, jika sudah berhasil menerima email berisikan file backup maka format perintah sudah benar dan tinggal di set di cronjob.

5.  Perintah Mutt diatas tadi kini kita set untuk dijalan kan di cronjob harian, masukan command tadi, dan set waktunya kira kira 15 menit s/d 30 menit setelah cronjob generated database diatas, jadi misal diatas tadi setiap harinya jam 23:48, maka untuk Mutt  kita set setiap hari pukul 00:03

Selesai sudah, untuk pengguna shared host mungkin terdapat keterbatasan dalam mengakses shell / SSH maka dalam tutorial mendatang akan di ulas bagaimana melakukan pengiriman otomatis backup file database MySQL ke email menggunakan script PHP dan cronjob :)
Apa saja keterbatasan metode ini> untuk database skala besar mungkin akan tergantung seberapa besar maksimal email Anda dapat menerima attachment, plus juga setting pengiriman attachment .
Kami sendiri melakukan test dengan Gmail dan berhasil hingga database 15 MB, hal ini dikarenakan limit attachment Gmail adalah 25 MB

0 komentar: