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 {} \;
chmod +x /home/backup/backup_mongodb.sh
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
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.your_database_name
, your_username
, dan your_password
dengan informasi koneksi MongoDB Anda yang sebenarnya.--username
dan --password
.find
di akhir script akan menghapus file backup yang lebih lama dari 7 hari. Anda bisa mengubah angka 7
sesuai kebutuhan Anda.