Cara Otomatis Backup Database Mysql dengan Cronjob

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:

  1. Agar script bisa dijalankan, beri permission executable:
    chmod +x /home/backup/backup_mysql.sh
    
  2. Tes jalankan script secara manual:
    /home/backup/backup_mysql.sh
    
  3. Jika berhasil, cek folder backup:
    ls /home/backup
    

Membuat Cronjob Backup Otomatis

Setelah script berjalan normal, kita buat cronjob.

  1. Buka cron editor
    crontab -e
    
  2. Tambahkan cronjob
    Contoh menjalankan backup setiap hari jam 02:00 pagi:
    0 2 * * * /home/backup/backup_mysql.sh
    
    Penjelasan:
    • 0 = menit ke 0
    • 2 = jam 2 pagi
    • * = setiap hari
    • Script akan dijalankan otomatis tiap hari

Restore Database dari File Backup

  1. 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.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Admin Finance : +6285191239466