Membuat Backup Database MySQL Otomatis dengan Crontab Ubuntu

Agar database MySQL menjadi aman maka perlu dibackup secara berkala. dan agar efisien cara backup nya maka sebaiknya dilakukan secara otomatis by sistem , kalau manual takut lupa atau tidak sempat kalau lagi repot.

Salah satu backup otomatis adalah dengan menggunakan crontab

Penjelasan Crontab bisa dibaca di wikipedia http://en.wikipedia.org/wiki/Cron

Cron is the time-based job scheduler in Unix-like computer operating systems.

Formatnya :

*    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 6) (0 or 6 are Sunday to Saturday, or use names)
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

Implementasikan di Backup

Buka terminal dan ketikkan :

crontab -e

nanti akan muncul editor , dan kita ketikkan script di bawah ini :

0 23 * * *  /usr/bin/mysqldump -u USER -pPASSWORD  databasename | gzip > /var/www/database_`date +\%Y-\%m-\%d`.sql.gz

keterangan :

0 = dijalankan pada menit ke 0

23 : dijalankan pada pukul 23 malam

* (pertama)  : dijalankan tanggal berapapun

* (kedua) : dijalankan bulan apapun

* (ketiga) : hari apapun

USER : user database , kalau usernya root isikan saja root

PASSWORD : password database, hati2 antara -pPASSWORD tidak ada spasi antara -p dengan PASSWORD

| gzip : agar file nya dikompres menjadi gz , dengan tujuan agar file nya lebih kecil size nya

date +\%Y-\%m-\%d : agar hasilnya tanggal sekarang saat eksekusi

Kita bisa pula membuat backup dilakukan di file php dan file php tersebut dijalankan oleh crontab

1. buat file backup.php

<?php

$database_dir = ‘/var/www/_database/’;

$year   = date(‘Y’);
$year_dir = $database_dir.’/’.$year;

$month = date(‘M’);
$month_dir = $year_dir.’/’.$month;

$today = date(‘Y-m-d’);
$today_dir = $month_dir.’/’.$today;

$filename = ‘coba_’.date(‘Y-m-d’).’.sql.gz’;

if (!file_exists($year_dir)) {
mkdir($year_dir,0777);
}

if (!file_exists($month_dir)) {
mkdir($month_dir,0777);
}

if (!file_exists($today_dir)) {
mkdir($today_dir,0777);
}

$command= ‘/usr/bin/mysqldump -u root -pmuc123 marketing | gzip > ‘.$today_dir.’/marketing.sql.gz’;
system($command);

?>

2. Kemudian edit file crontab untuk menjalankan file backup.php  :

0 23 * * * /usr/bin/php /var/www/backup.php

selamat mencoba 

Referensi :

http://www.backuphowto.info/how-backup-mysql-database-automatically-linux-users
http://www.tutorialspoint.com/php/perform_mysql_backup_php.htm
http://www.noupe.com/how-tos/10-ways-to-automatically-manually-backup-mysql-database.html
www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
http://en.wikipedia.org/wiki/Cron

2 pemikiran pada “Membuat Backup Database MySQL Otomatis dengan Crontab Ubuntu

  1. misi bang numpang nanya,,
    nnti hasil gzip nya ada dimna?? jika saya mau memindah kan nya ke tempat lain.
    maf jika pertanyaan nya sepeleh saya baru belajar ubuntu.

    terimakasih. 😀

    Suka

    • Kalau ikut tutorial di atas maka ada di folder variable $database_dir mas
      yakni /var/www/_database/… tergantung hari kapan
      kalau misal hari ini maka ada di
      /var/www/_database/2018/06/03/cobafile.sql.gzip

      bisa diganti mas di variable $database_dir sesuai keinginan.

      Suka

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s