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
- Buat Berkas Skrip: Buka terminal server dan buat berkas skrip baru menggunakan editor teks seperti
nano.sudo nano /usr/local/bin/backup-script.sh - Tempel Kode: Masukkan kode Bash di atas, sesuaikan variabel
TARGET_DIRdengan direktori yang ingin Anda amankan, lalu simpan berkas. - 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 - 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).
- Buka konfigurasi crontab root:
sudo crontab -e - 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 - 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.