Untuk membuat auto backup MongoDB, kita dapat menggunakan script shell dan cron job untuk menjadwalkannya. Berikut adalah langkah-langkah untuk membuat backup otomatis MongoDB setiap hari:
Buat Script Backup: Buat sebuah file script untuk melakukan backup MongoDB dan menyimpannya dalam format tar.gz di direktori yang sesuai.
Buat file script di /home/backup/backup_mongodb.sh.

#!/bin/bash

# Informasi koneksi MongoDB
DB_HOST="localhost"
DB_PORT="27017"
DB_NAME="your_database_name"
DB_USER="your_username"
DB_PASSWORD="your_password"

# Direktori untuk menyimpan backup
BACKUP_DIR="/home/backup/mongodb"

# Mendapatkan tanggal hari ini
CURRENT_DATE=$(date +"%Y-%m-%d")
CURRENT_TIME=$(date +"%H%M")

# Buat direktori untuk hari ini jika belum ada
TODAY_BACKUP_DIR="$BACKUP_DIR/$CURRENT_DATE"
mkdir -p $TODAY_BACKUP_DIR

# Nama file backup
BACKUP_FILE="$TODAY_BACKUP_DIR/mongodb_backup_${CURRENT_DATE}_${CURRENT_TIME}.gz"

# Melakukan backup database
mongodump --host $DB_HOST --port $DB_PORT --db $DB_NAME --username $DB_USER --password $DB_PASSWORD --archive=$BACKUP_FILE --gzip

# Optional: Hapus backup yang lebih lama dari 7 hari
find $BACKUP_DIR -type f -mtime +7 -name '*.gz' -exec rm {} \;

Jadikan Script Dapat Dieksekusi: Ubah permission dari script agar bisa dieksekusi.
chmod +x /home/backup/backup_mongodb.sh

Jadwalkan dengan Cron: Gunakan cron untuk menjalankan script setiap hari pada waktu yang Anda tentukan. Misalnya, untuk menjalankan script setiap hari pada jam 2 pagi, edit crontab dengan perintah crontab -e dan tambahkan baris berikut:
0 2 * * * /home/backup/backup_mongodb.sh

Dengan konfigurasi ini, script backup_mongodb.sh akan dijalankan setiap hari pada jam 2 pagi, membuat backup MongoDB dalam format gzip di direktori /home/backup/mongodb/, dan menyimpannya dalam subdirektori yang sesuai dengan tanggal saat ini. Backup juga akan mencakup waktu (jam dan menit) saat backup dilakukan.

Catatan:

  1. Sesuaikan Variabel: Ganti your_database_name, your_username, dan your_password dengan informasi koneksi MongoDB Anda yang sebenarnya.
  2. Otentikasi MongoDB: Pastikan bahwa opsi otentikasi sesuai dengan konfigurasi server MongoDB Anda. Jika otentikasi tidak diperlukan, Anda bisa menghapus opsi --username dan --password.
  3. Backup yang Lebih Lama: Perintah find di akhir script akan menghapus file backup yang lebih lama dari 7 hari. Anda bisa mengubah angka 7 sesuai kebutuhan Anda.