Cara Otomatis Backup Database Mysql dengan Cronjob
Pendahuluan
Database adalah aset krusial dalam sebuah sistem, baik untuk website, aplikasi, maupun server perusahaan, karena seluruh data penting tersimpan di dalamnya. Tanpa perlindungan yang tepat, berbagai risiko seperti kesalahan konfigurasi, kerusakan server, serangan malware, hingga human error dapat menyebabkan data hilang kapan saja. Inilah alasan mengapa backup database MySQL secara otomatis menggunakan cronjob menjadi sangat penting. Dengan backup otomatis, proses pencadangan dapat berjalan rutin tanpa perlu dilakukan secara manual setiap hari. Data pun tetap aman, lebih mudah dipulihkan ketika terjadi masalah, serta membantu administrator server menjaga keamanan dan kestabilan sistem dalam jangka panjang.
Apa Itu Cronjob ?
Cronjob adalah fitur pada sistem operasi Linux yang berfungsi untuk menjalankan perintah atau script secara otomatis berdasarkan jadwal waktu yang telah ditentukan sebelumnya. Dengan cronjob, pengguna dapat mengatur sebuah proses agar berjalan secara rutin, misalnya setiap menit, setiap jam, setiap hari, atau pada jam dan tanggal tertentu tanpa perlu dijalankan secara manual. Cronjob biasanya digunakan untuk tugas-tugas terjadwal seperti backup database, membersihkan file sementara, menjalankan script maintenance server, hingga mengirim laporan otomatis. Karena bekerja di latar belakang dan berjalan secara konsisten sesuai jadwal, cronjob sangat membantu dalam menjaga sistem tetap teratur, efisien, dan minim kesalahan akibat kelalaian manusia.
Persiapan Sebelum Backup
Sebelum membuat cronjob, siapkan beberapa hal berikut:
- Akses SSH ke server
- User MySQL dan password
- Nama database yang akan dibackup
- Folder penyimpanan backup, misalnya:
- /home/backup/
Membuat Folder Backup
Langkah pertama adalah membuat folder untuk menyimpan hasil backup.
- Jalankan perintah berikut:
mkdir -p /home/backup - Atur permission agar bisa digunakan:
chmod 700 /home/backup
Membuat Script Backup Database MySQL
Agar lebih rapi, kita buat script khusus untuk backup.
- Buat file script
Misalnya kita buat file:
nano /home/backup/backup_mysql.sh - Isi script backup
Contoh script backup database MySQL:
#!/bin/bash DATE=$(date +"%Y_%m_%d") BACKUP_DIR="/home/backup" DB_NAME="db_backup_mysql" DB_USER="user_backup" DB_PASS="BackupMysql2026!" FILE_NAME="${DB_NAME}_${DATE}.sql.gz" mysqldump --no-tablespaces -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$BACKUP_DIR/$FILE_NAME"Penjelasan:
- DATE = mengambil tanggal hari ini
- BACKUP_DIR = folder penyimpanan backup
- DB_NAME = nama database
- DB_USER = user MySQL
- DB_PASS = password MySQL
- gzip = mengompres file agar lebih kecil
Memberikan Hak Eksekusi Script
Agar script bisa dijalankan, beri permission executable:
- Agar script bisa dijalankan, beri permission executable:
chmod +x /home/backup/backup_mysql.sh - Tes jalankan script secara manual:
/home/backup/backup_mysql.sh - Jika berhasil, cek folder backup:
ls /home/backup
Membuat Cronjob Backup Otomatis
Setelah script berjalan normal, kita buat cronjob.
- Buka cron editor
crontab -e - Tambahkan cronjob
Contoh menjalankan backup setiap hari jam 02:00 pagi:
Penjelasan:0 2 * * * /home/backup/backup_mysql.sh- 0 = menit ke 0
- 2 = jam 2 pagi
- * = setiap hari
- Script akan dijalankan otomatis tiap hari
Restore Database dari File Backup
- Jika suatu saat perlu restore, gunakan perintah:
gunzip dbku_2025_10_20.sql.gz mysql -u root -p dbku < dbku_2025_10_20.sql
Kesimpulan
Melakukan backup database MySQL secara otomatis menggunakan cronjob merupakan langkah sederhana namun sangat krusial untuk melindungi data dari berbagai risiko kehilangan. Dengan membuat script backup dan menyimpannya di folder khusus seperti /home/backup/ dengan format nama file berdasarkan tanggal, proses pencadangan menjadi lebih teratur, rapi, dan mudah dikelola. Sistem ini memungkinkan administrator server tidak perlu lagi melakukan backup secara manual setiap hari serta siap melakukan restore kapan saja jika terjadi masalah. Sebagai pengembangan lanjutan, backup dapat dikombinasikan dengan penghapusan file lama atau pengiriman ke server lain maupun cloud storage agar keamanan data semakin optimal dan profesional.


