Database adalah suatu hal yang sangat vital bagi seorang programmer, baik itu MySQL, Oracle, PostgreSQL, dll. Karena ini merupakan salah satu jantung utama dalam penyimpanan sebuah data. Selain berfungsi sebagai media penyimpanan data, database juga dapat digunakan sebagai report data, analisis data, dan semua hal yang berhubungan dengan data.
Pada halnya, banyak programmer menggunakan MySQL sebagai pilihan mesin database favouritenya, karena selain software ini berlisensi GNU-GPL alias opensource/gratisan, MySQL mempunyai banyak fixing bug development yang sudah dikembangkan oleh tim MySQL-nya sendiri, atau forum-forum lain yang sudah banyak tersebar di internet, dan sintak yang diberikan juga bersifat user-friendly dengan pengguna.
Karena vitalnya database bagi khalayak umum, untuk itu diperlukan backup database untuk alasan pengamanan data berdasarkan jadwal yang telah ditentukan dan berkala. Baik, kasusnya adalah:
- Buat shell script untuk melakukan eksekusi pengambilan data dari database
- Buat Cron Job dan diintegrasikan dengan shell script diatas
Pertama, buat direktori untuk anda gunakan sebagai master backup, contoh saya buat di /home/ahzie92/backup
1 |
[email protected]:/home/ahzie92# mkdir /home/ahzie92/backup |
Pindah ke direktori home anda:
1 |
[email protected]:/home/ahzie92# cd /home/ahzie92 |
Kemudian buat file berikut dengan ekstensi *.sh, contoh saya akan membuat file dengan nama backup.sh:
1 |
[email protected]:/home/ahzie92# nano backup.sh |
Dan masukkan shell script yang dibuat untuk membackup satu database:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/bin/bash # tentukan konfigurasi database disini export DB_HOST="localhost" export DB_USER="user_MySQL" export DB_PASSWD="password_MySQL" export DB_NAME="fauzi-blog" cd /home/ahzie92/backup mkdir `date +%d-%m-%Y__%H_%M_%S` export DB_BACKUP="/home/ahzie92/backup/`date +%d-%m-%Y__%H_%M_%S`" # script dumping database /usr/bin/mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASSWD $DB_NAME > $DB_BACKUP/$DB_NAME.sql cd $DB_BACKUP tar -zcvf $DB_NAME.tgz $DB_NAME.sql rm $DB_NAME.sql |
Anda dapat membuat lebih dari satu database atau host.
Setelah itu, buat agar file backup.sh dapat dieksekusi oleh linux, dengan perintah:
1 |
[email protected]:/home/ahzie92# chmod +x backup.sh |
Kemudian anda dapat mencobanya dengan perintah:
1 |
[email protected]:/home/ahzie92# ./backup.sh |
Setelah dicoba, kemudian lihat ke direktori yang telah ditentukan sebelumnya, untuk menentukan file terbuat dengan benar
Setelah itu, sekarang proses untuk mengeksekusi file shell script tadi kedalam crontab, dengan perintah:
1 |
[email protected]:/home/ahzie92# crontab -e |
Jika crontab belum terinstall, install dengan perintah:
1 |
[email protected]:/home/ahzie92# apt-get install cron |
Kemudian tentukan waktu yang akan ditentukan dengan format sbb:
1 2 3 4 5 6 7 8 |
* * * * * command to be executed - - - - - | | | | | | | | | +----- Hari per minggu (0 - 6) (Minggu=0) | | | +------- Bulan (1 - 12) | | +--------- Hari per bulan (1 - 31) | +----------- Jam (0 - 23) +------------- Menit (0 - 59) |
Kasusnya, saya akan membuat backup automatis setiap hari, pada jam 3 lewat 3 menit, maka perintah yang diberikan adalah:
1 2 |
# m h dom mon dow command 3 3 * * * /home/fauzi/backup.sh |
Kemudian simpan file tersebut.
Ok, setelah anda menyimpan file tersebut, maka secara otomatis cron akan menjalankan job-nya setiap hari pada jam 03:03, anda dapat mengubah waktu dan jadwal cron sesuai dengan konfigurasi diatas, atau baca selebihnya disini.
Selamat mencoba 🙂