Cara Backup Direktori Server Otomatis dengan Bash Script & Cron

Backup direktori server secara otomatis dapat dilakukan dengan menggabungkan utilitas kompresi tar, protokol transfer seperti rsync atau rclone, serta penjadwal sistem cron. Metode ini memastikan data krusial seperti direktori web root atau basis data tersimpan berkala ke penyimpanan lokal cadangan atau server eksternal tanpa intervensi manual setiap hari.

Kehilangan data akibat kegagalan perangkat keras, serangan siber, atau kesalahan konfigurasi sistem dapat diminimalkan secara drastis melalui otomatisasi ini. Di bawah ini adalah panduan teknis implementasi backup otomatis menggunakan Bash Script di sistem operasi Linux.

Sintaks Bash Script Backup Otomatis

Salin skrip di bawah ini dan simpan dengan nama backup-script.sh di direktori sistem Anda (misalnya pada /usr/local/bin/backup-script.sh).

#!/bin/bash

# Konfigurasi Direktori
BACKUP_DIR="/var/backups/server"
TARGET_DIR="/var/www/html"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
FILENAME="backup-$DATE.tar.gz"

# Buat direktori backup jika belum ada
mkdir -p $BACKUP_DIR

# Proses kompresi direktori target
tar -czf $BACKUP_DIR/$FILENAME $TARGET_DIR

# Hapus backup yang lebih lama dari 7 hari
find $BACKUP_DIR -name "backup-*.tar.gz" -mtime +7 -exec rm {} \;

echo "Backup selesai pada $(date)"

Langkah-Langkah Teknis Implementasi

  1. Buat Berkas Skrip: Buka terminal server dan buat berkas skrip baru menggunakan editor teks seperti nano.
    sudo nano /usr/local/bin/backup-script.sh
  2. Tempel Kode: Masukkan kode Bash di atas, sesuaikan variabel TARGET_DIR dengan direktori yang ingin Anda amankan, lalu simpan berkas.
  3. Berikan Hak Akses Eksekusi: Agar skrip dapat dijalankan oleh sistem, berikan izin eksekusi menggunakan perintah chmod.
    sudo chmod +x /usr/local/bin/backup-script.sh
  4. Uji Coba Manual: Jalankan skrip secara manual untuk memastikan tidak ada galat (error) pada sintaks.
    sudo /usr/local/bin/backup-script.sh

Pengaturan Cron Job untuk Otomatisasi

Agar skrip berjalan otomatis sesuai jadwal, konfigurasikan cron job pada tingkat administratif (root).

  1. Buka konfigurasi crontab root:
    sudo crontab -e
  2. Tambahkan baris berikut di bagian bawah untuk menjalankan skrip setiap hari pukul 02:00 pagi:
    0 2 * * * /usr/local/bin/backup-script.sh > /var/log/backup-cron.log 2>&1
  3. Simpan dan keluar dari editor.

Tabel Komparasi Metode Penyimpanan Backup

Metode Penyimpanan Kecepatan Pemulihan Risiko Keamanan Biaya Operasional
Partisi Disk Lokal / RAID Sangat Cepat Tinggi (Jika server fisik rusak total) Rendah
Remote Server (RSYNC/SFTP) Cepat Sedang Sedang (Sewa VPS tambahan)
Cloud Object Storage (S3/B2) Tergantung Bandwidth Rendah Variatif (Pay-as-you-go)

Tips Troubleshooting Lapangan

Jika proses backup otomatis gagal berjalan, periksa beberapa hal berikut:

    Izin Akses (Permission Denied): Pastikan skrip dijalankan dengan hak istimewa sudo atau melalui crontab milik pengguna root yang memiliki akses baca ke direktori target.

    Kapasitas Disk Penuh: Periksa sisa ruang penyimpanan pada direktori tujuan backup menggunakan perintah df -h. Ruang disk yang habis akan menghentikan proses kompresi tar di tengah jalan.

    Log Eksekusi: Periksa keluaran log pada /var/log/backup-cron.log untuk melacak baris perintah spesifik yang mengalami kegagalan.