Press ESC to close

Backup Database Otomatis Menggunakan Script

WhatsAppTelegramFacebookXThreadsCopy Link

Bayangkan ini: suatu pagi Anda membuka server, dan mendapati database penting hilang atau rusak karena kesalahan sistem. Tidak ada backup terbaru. Semua data proyek, laporan, dan transaksi… lenyap.

Masalah seperti ini sering dialami banyak admin sistem dan developer pemula. Bukan karena mereka tidak tahu pentingnya backup, tetapi karena lupa melakukannya secara rutin. Solusinya sederhana tapi sangat efektif — buat sistem backup otomatis menggunakan script.

Artikel ini akan menjadi panduan lengkap bagi Anda untuk:

  • Memahami cara kerja backup otomatis.
  • Membuat script Bash sederhana untuk backup database (contoh: MySQL/MariaDB).
  • Menjadwalkan backup agar berjalan otomatis setiap hari dengan cron job.
  • Menambahkan fitur kompresi dan rotasi file agar penyimpanan tetap efisien.

Mengapa Backup Otomatis Itu Penting?

Backup otomatis membantu Anda menghemat waktu, menghindari kehilangan data, dan memastikan database selalu punya cadangan terbaru tanpa perlu intervensi manual. Dengan script sederhana, sistem Anda akan bekerja sendiri — setiap hari, setiap minggu, atau kapan pun Anda tentukan.


Langkah-Langkah Membuat Backup Database Otomatis

Berikut panduan step-by-step yang bisa langsung Anda praktikkan di server Linux:


1. Siapkan Lingkungan dan Akses Database

Pastikan Anda sudah punya:

  • Database yang aktif (contoh: MySQL atau MariaDB)
  • Akun dengan hak akses untuk melakukan backup
  • Tools bawaan seperti mysqldump, gzip, dan cron

Coba tes backup manual terlebih dahulu:

mysqldump -u root -p nama_database > backup.sql

Jika berhasil, artinya koneksi dan izin sudah benar.


2. Buat Script Backup Otomatis (Bash Script)

Sekarang buat file script di /usr/local/bin/, misalnya backup-db.sh:

sudo nano /usr/local/bin/backup-db.sh

Isi dengan script berikut:

#!/bin/bash

# Konfigurasi
DB_USER="root"
DB_PASS="passwordAnda"
DB_NAME="nama_database"
BACKUP_DIR="/var/backups/db"
DATE=$(date +'%Y-%m-%d_%H-%M-%S')

# Buat folder jika belum ada
mkdir -p $BACKUP_DIR

# Jalankan backup dan kompres
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME-$DATE.sql.gz

# Hapus file backup yang lebih dari 7 hari
find $BACKUP_DIR -type f -mtime +7 -name "*.gz" -delete

Simpan dan beri hak eksekusi:

sudo chmod +x /usr/local/bin/backup-db.sh

Penjelasan singkat:

  • Script ini akan membuat file backup harian dengan nama berdasarkan tanggal.
  • File otomatis dikompres menjadi .gz untuk menghemat ruang.
  • Backup yang lebih tua dari 7 hari akan dihapus.

3. Uji Script Backup Secara Manual

Sebelum dijadwalkan, pastikan script berjalan dengan benar:

sudo /usr/local/bin/backup-db.sh

Cek hasilnya di folder /var/backups/db/. Jika file .sql.gz muncul, berarti script berhasil.


4. Jadwalkan Backup Otomatis dengan Cron Job

Agar script berjalan otomatis, tambahkan ke cron:

sudo crontab -e

Masukkan jadwal berikut:

0 2 * * * /usr/local/bin/backup-db.sh

Artinya: script dijalankan setiap jam 2 pagi.
Anda bisa menyesuaikannya sesuai kebutuhan.

Gunakan perintah berikut untuk memastikan cron aktif:

sudo systemctl status cron

5. (Opsional) Kirim Notifikasi Email Setelah Backup

Jika Anda ingin mendapat laporan otomatis, tambahkan di akhir script:

mail -s "Backup Database Selesai" you@example.com <<< "Backup untuk $DB_NAME selesai pada $DATE"

Dengan begitu, Anda akan menerima notifikasi setiap kali backup berhasil.


6. (Opsional) Backup ke Server Lain atau Cloud

Anda juga bisa memperkuat keamanan dengan menyalin hasil backup ke server atau penyimpanan eksternal menggunakan rsync atau rclone:

rsync -avz /var/backups/db/ user@server-backup:/backup/

Atau ke cloud (Google Drive, AWS, dll.) tergantung preferensi dan kebutuhan.


Sekarang Anda sudah tahu cara membuat sistem backup database otomatis menggunakan script. Mulai dari pembuatan script, kompresi, penghapusan otomatis, hingga penjadwalan dengan cron — semuanya bisa dijalankan dengan satu kali konfigurasi.

Jangan menunggu kehilangan data baru mulai melakukan backup. Jadikan ini bagian dari rutinitas administrasi server Anda.

Baca juga: [Menggunakan for, while, dan until loop di Bash — Panduan Lengkap untuk Pemula]

WhatsAppTelegramFacebookXThreadsCopy Link