Membuat Cron Backup Database dan Kirim ke Gmail

Backup adalah aksi wajib bagi pengelolaan sebuah sistem. Ada banyak cara dan jalan dalam membuat backup, dari yang manual sampai yang otomatis. Teknik backup data yang akan kita lakukan kali ini akan memanfaatkan skrip PHP untuk membackup database, memampatkannya menjadi format GZIP dan mengirimnya ke email Gmail. Kenapa Gmail? Karena Gmail menawarkan storage yang besar untuk tiap akunnya (sekitar 7Giga lebih saat artikel ini dipublish).

Ada beberapa software/pustaka yang akan kita gunakan, antara lain mysqldump bawaan MySQL, class PHPMailer dan aplikasi gzip bawaan Linux. Berikut contoh skripnya:

<?php

$time = date("y-m-d_H-i-s");
$filename = 'sia_'.$time;

exec("mysqldump -unamauser -ppasswordmuapa --add-drop-table namatabel | gzip -c > /home/cron/sql/$filename.sql.gz");

$tujuan = "alamattujuan@gmail.com";
$name_pengirim = "Nama Pengirim e-Mail";
$pengirim = "alamatasalpengirim@namadomain.namadomain";
$letak_file = "/home/cron/sql";
$nama_file = "$letak_file"."/$filename.sql.gz";
$subject = "Subjek/Judul e-Mail";
$message = "Isi e-Mail. Inilah backup data dari sistem. Silakan unduh attachment $filename.sql.gz jika diperlukan";
 
$mail = new PHPMailer;
$mail->ClearAddresses();
$mail->AddAddress($tujuan, $tujuan);
$mail->From = $pengirim;
$mail->FromName = $name_pengirim;
$mail->Subject = $subject;
$mail->Body = $message;
$mail->AddAttachment($nama_file, $filename.".sql.gz");
 
if ($mail->Send()){
   echo 'email terkirim';
}else{
  echo 'email gagal karena'.$mail->ErrorInfo;
}

Langkah selanjutnya cukup tambahkan aksi ke crontable server anda, misalnya saya ingin mengeksekusi skrip ini tiap jam 3 pagi:

10 3 * * *  php /var/www/letak_script_backup_anda.php

Selamat mencoba!

 

https://emka.web.id/uncategorized/2013/belajar-php-membuat-cron-backup-database-kirim-hasil-ke-email-gmail/

 

Leave a Comment